private IntPtr HookCallbackInner(int nCode, IntPtr wParam, IntPtr lParam) { if (nCode >= 0) { if (wParam == (IntPtr)InterceptKeys.WM_KEYDOWN) { int vkCode = Marshal.ReadInt32(lParam); if (KeyDown != null) { KeyDown(this, new RawKeyEventArgs(vkCode, false)); } } else if (wParam == (IntPtr)InterceptKeys.WM_KEYUP) { int vkCode = Marshal.ReadInt32(lParam); if (KeyUp != null) { KeyUp(this, new RawKeyEventArgs(vkCode, false)); } } } return(InterceptKeys.CallNextHookEx(hookId, nCode, wParam, lParam)); }
private IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) { try { return(HookCallbackInner(nCode, wParam, lParam)); } catch (Exception e) { Console.WriteLine("Exception: " + e.Message); } return(InterceptKeys.CallNextHookEx(hookId, nCode, wParam, lParam)); }
public void Dispose() { InterceptKeys.UnhookWindowsHookEx(hookId); _hook = null; }
public KeyboardListener() { _hook = (InterceptKeys.LowLevelKeyboardProc)HookCallback; hookId = InterceptKeys.SetHook(_hook); }