int KeyboardProc(int nCode, int wParam, ref tagKBDLLHOOKSTRUCT lParam) { if (nCode == HC_ACTION) { if (lParam.vkCode == keyCode_ && (wParam == WM_KEYDOWN || wParam == WM_SYSKEYDOWN) && (HotkeyDownEvent != null)) { // if ALT is required if (modifiers_ == 0x0001 /*MOD_ALT*/) { // if 5th bit is 1, ALT was pressed if ((lParam.flags & 0x0020) != 0) { HotkeyDownEvent(); handled_ = true; } } else { HotkeyDownEvent(); handled_ = true; } } } return(CallNextHookEx(globalHook_, nCode, wParam, lParam)); }
private int KeyboardProc(int nCode, int wParam, IntPtr lParam) { int Result = 0; bool vEatKeystroke = false; if (((IntPtr)User.GetFocus() == this.Handle) && (nCode == User.HC_ACTION)) { if ((wParam == User.WM_SYSKEYDOWN) || (wParam == User.WM_SYSKEYUP)) { tagKBDLLHOOKSTRUCT vPKB = (tagKBDLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(tagKBDLLHOOKSTRUCT)); if (vPKB.flags == LLKHF_ALTDOWN) { if (vPKB.vkCode == User.VK_SPACE) { FInputHelper.ShowEx(); vEatKeystroke = true; } } } } if (vEatKeystroke) { Result = 1; } else if (nCode != 0) { Result = User.CallNextHookEx(IntPtr.Zero, nCode, wParam, lParam); } return(Result); }
int KeyboardProc(int nCode, int wParam, ref tagKBDLLHOOKSTRUCT lParam) { if (nCode == HC_ACTION) { if (lParam.vkCode == keyCode_ && (wParam == WM_KEYDOWN || wParam == WM_SYSKEYDOWN) && (HotkeyDownEvent != null)) { HotkeyDownEvent(); } } return(CallNextHookEx(globalHook_, nCode, wParam, lParam)); }
[DllImport("user32.dll")] static extern int CallNextHookEx(IntPtr hhk, int nCode, int wParam, tagKBDLLHOOKSTRUCT lParam);
static extern int CallNextHookEx(IntPtr hhk, int nCode, int wParam, tagKBDLLHOOKSTRUCT lParam);