Exemplo n.º 1
0
 public KeyboardHookEventArgs(KeyboardEventType type, Keys key, int wParam, Native.keyboardHookStruct lParam)
 {
     Type        = type;
     this.wParam = wParam;
     this.lParam = lParam;
     this.key    = key;
 }
Exemplo n.º 2
0
        protected virtual int KeyboardHookProc(int code, int wParam, ref Native.keyboardHookStruct lParam)
        {
            if (code >= 0 && KeyboardHookEvent != null)
            {
                var key = (Keys)lParam.vkCode;
                KeyboardEventType type;

                if ((wParam == (int)User32.WM.WM_KEYDOWN || wParam == (int)User32.WM.WM_SYSKEYDOWN))
                {
                    type = KeyboardEventType.KeyDown;
                }
                else if ((wParam == (int)User32.WM.WM_KEYUP || wParam == (int)User32.WM.WM_SYSKEYUP))
                {
                    type = KeyboardEventType.KeyUp;
                }
                else
                {
                    return(Native.CallNextHookEx(_hookId, code, wParam, ref lParam));
                }

                var args = new KeyboardHookEventArgs(type, key, wParam, lParam);
                KeyboardHookEvent(args);

                if (args.Handled)
                {
                    return(1);
                }
            }

            return(Native.CallNextHookEx(_hookId, code, wParam, ref lParam));
        }