private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) { if (nCode >= 0) { switch ((KeyboardMessage)wParam) { case KeyboardMessage.WM_KEYDOWN: KeyEventsArgs = new KeyEventsArgs { KeyCode = Marshal.ReadInt32(lParam), KeyState = KeyState.KeyDown }; switch (KeyEventsArgs.Key) { case Keys.C: OnCPress?.Invoke(null, KeyEventsArgs); break; case Keys.Escape: OnEscapePress?.Invoke(null, KeyEventsArgs); break; case Keys.Space: OnSpacePress?.Invoke(null, KeyEventsArgs); break; case Keys.V: OnVPress?.Invoke(null, KeyEventsArgs); break; case Keys.B: OnBPress?.Invoke(null, KeyEventsArgs); break; } OnKeyPress?.Invoke(null, KeyEventsArgs); break; case KeyboardMessage.WM_KEYUP: break; } } return(NativeMethods.CallNextHookEx(HookId, nCode, wParam, lParam)); }
public void StartListning() { while (true) { ConsoleKeyInfo key = Console.ReadKey(true); if (key.Key.Equals(ConsoleKey.A)) { OnAPress?.Invoke(this, new EventArgs()); } else if (key.Key.Equals(ConsoleKey.D)) { OnDPress?.Invoke(this, new EventArgs()); } else if (key.Key.Equals(ConsoleKey.Spacebar)) { OnSpacePress?.Invoke(this, new EventArgs()); } } }
public void SpacePress() { OnSpacePress?.Invoke(); }