//====================== Functions ====================== public static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) // 2. delegate method { if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN) { int vkCode = Marshal.ReadInt32(lParam); //Console.WriteLine(vkCode); Keys PlayPause = Control.KeyPlayPause; if ((Keys)vkCode == Control.KeyPlayPause) { VirtualKeyPress.PressPlayPause(); } if ((Keys)vkCode == Control.KeyStop) { VirtualKeyPress.PressStop(); } if ((Keys)vkCode == Control.KeyNext) { VirtualKeyPress.PressNext(); } if ((Keys)vkCode == Control.KeyPrevious) { VirtualKeyPress.PressPrevious(); } } return(CallNextHookEx(Control.HookID, nCode, wParam, lParam)); }
private void TB_ANY_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) { System.Windows.Controls.TextBox CurrentTextBox = sender as System.Windows.Controls.TextBox; // Check if the pressed key is not a modifier key like "ctrl" or "shift" ... if (e.Key != Key.Tab && e.Key != (Key.LeftShift | Key.RightShift) && e.Key != (Key.LeftCtrl | Key.RightCtrl) && e.Key != (Key.LeftAlt | Key.RightAlt)) //(Keyboard.Modifiers & (ModifierKeys.Control | ModifierKeys.Shift)) == (ModifierKeys.Control | ModifierKeys.Shift)) { // check if the pressed key is a system key like "F10" /bc they are toggels if (e.Key == Key.System) { int hash = 0; switch (e.SystemKey) { case Key.F10: hash = e.Key.GetHashCode(); CurrentTextBox.Text = Key.F10.ToString(); // Press F10 again because its a toggle like he ALT key VirtualKeyPress.PressKeyByByteValue((byte)hash); break; case (Key.LeftAlt): hash = e.Key.GetHashCode(); CurrentTextBox.Text = "Alt"; // Press LeftAlt again because its a toggle like he ALT key VirtualKeyPress.PressKeyByByteValue((byte)hash); break; } } else { // Write pressed key in textbox CurrentTextBox.Text = e.Key.ToString(); } } }