public KeyboardHookEventArgs(KeyboardEventType type, Keys key, int wParam, Native.keyboardHookStruct lParam) { Type = type; this.wParam = wParam; this.lParam = lParam; this.key = key; }
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)); }