public KeyboardHookController(Action <Keys> keyDownCallback, Action <Keys> keyUpCallback) { _keyDownCallback = keyDownCallback; _keyUpCallback = keyUpCallback; _globalKeyboardHook = new GlobalKeyboardHook(); _hookID = _globalKeyboardHook.SetHook(HookCallback); }
private IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) { if (nCode >= 0) { int vkCode = Marshal.ReadInt32(lParam); if (wParam == (IntPtr)WM_KEYDOWN) { _keyDownCallback((Keys)vkCode); } else if (wParam == (IntPtr)WM_KEYUP) { _keyUpCallback((Keys)vkCode); } } return(GlobalKeyboardHook.CallNextHookEx(_hookID, nCode, wParam, lParam)); }
public void Dispose() { GlobalKeyboardHook.UnhookWindowsHookEx(_hookID); }