예제 #1
0
        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));
        }
예제 #2
0
        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());
                }
            }
        }
예제 #3
0
 public void SpacePress()
 {
     OnSpacePress?.Invoke();
 }