public void Dispose() { if (_hook != IntPtr.Zero) { Interop.User32.UnhookWindowsHookEx(_hook); _hook = IntPtr.Zero; } _proc = null; }
public KeyboardProvider() { var threadId = Interop.Kernel32.GetCurrentThreadId(); _proc = HookProc; _hook = Interop.User32.SetWindowsHookEx( Interop.User32.HookType.WH_KEYBOARD, _proc, IntPtr.Zero, threadId); _keyboardLayout = Interop.User32.GetKeyboardLayout(threadId); }