public KeyboardHook(ICollection <Key> keys) { keyboardProc = HookCallback; hookId = SetHook(keyboardProc); SelectedKeys = new HashSet <Key>(keys); }
private IntPtr SetHook(LowLevelKeyboardProc proc) { using (Process curProcess = Process.GetCurrentProcess()) using (ProcessModule curModule = curProcess.MainModule) { return(NativeMethods.SetWindowsHookEx( idHook: WH_KEYBOARD_LL, lpfn: proc, hMod: NativeMethods.GetModuleHandle(curModule.ModuleName), dwThreadId: 0)); } }