/// <summary> /// 停止全局钩子 /// </summary> /// <exception cref="System.Exception">UnhookWindowsHookEx failed.</exception> /// <exception cref="Exception">UnhookWindowsHookEx failed.</exception> public static void Stop() { bool retMouse = true; if (_hMouseHook != 0) { retMouse = WindowsHook.StopHook(_hMouseHook); _hMouseHook = 0; } // 假设卸下钩子失败 if (!(retMouse)) { throw new Exception("UnhookWindowsHookEx failed."); } }
private static int _hMouseHook = 0; // 鼠标钩子句柄 /// <summary> /// 启动全局钩子 /// </summary> /// <exception cref="System.Exception">SetWindowsHookEx failed.</exception> /// <exception cref="Exception">SetWindowsHookEx failed.</exception> public static void Start() { // 安装鼠标钩子 if (_hMouseHook != 0) { Stop(); } // 生成一个HookProc的实例. WindowsHook.HookMsgChanged += WindowsHook_HookMsgChanged; _hMouseHook = WindowsHook.StartHook(HookType.WH_MOUSE_LL); //假设装置失败停止钩子 if (_hMouseHook == 0) { Stop(); } }