public void InstallHook(KeyboardHookLib.ProcessKeyHandle clientMethod) { KeyboardHookLib._clientMethod = clientMethod; if (KeyboardHookLib._hHookValue != 0) { return; } this._KeyBoardHookProcedure = new KeyboardHookLib.HookHandle(KeyboardHookLib.OnHookProc); this._hookWindowPtr = KeyboardHookLib.GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName); KeyboardHookLib._hHookValue = KeyboardHookLib.SetWindowsHookEx(13, this._KeyBoardHookProcedure, this._hookWindowPtr, 0); if (KeyboardHookLib._hHookValue != 0) { return; } this.UninstallHook(); }
private static extern int SetWindowsHookEx( int idHook, KeyboardHookLib.HookHandle lpfn, IntPtr hInstance, int threadId);