public KeyBoardInput() { keyBoardDelegate = KeyboardHookDelegate; keyBoardHandle = WindowsHookHelper.SetWindowsHookEx(WH_KEYBOARD_LL, keyBoardDelegate, IntPtr.Zero, 0); KeyBoardKeyPressed -= KeyboardInput_KeyBoardKeyPressed; KeyBoardKeyPressed += KeyboardInput_KeyBoardKeyPressed; }
protected virtual void Dispose(bool disposing) { if (!disposed) { if (keyBoardHandle != IntPtr.Zero) { WindowsHookHelper.UnhookWindowsHookEx(keyBoardHandle); } disposed = true; } }
private IntPtr KeyboardHookDelegate(Int32 Code, IntPtr wParam, IntPtr lParam) { if (Code < 0) { return(WindowsHookHelper.CallNextHookEx(keyBoardHandle, Code, wParam, lParam)); } var pressedKey = GetKeyCode(lParam); KeyBoardKeyPressed?.Invoke(this, new KeyboardEventArgs(pressedKey)); return(WindowsHookHelper.CallNextHookEx(keyBoardHandle, Code, wParam, lParam)); }