我在 vb.net 中遇到了 WindowsHookEx 的问题。如果我的电脑过载,尤其是 3D 渲染,Windows 会自动断开我的键盘挂钩并且我的热键停止工作。我四处搜寻,似乎没有办法检测钩子是活动的还是断开的。所以我尝试了“moodforaday”提出的这种方法 是否可以检测到Windows何时自动断开低级键盘挂钩? 钩子已经自动-d
他表示定期使用 GetLastInputInfo 并在使用键时将 GetLastInputInfo 存储到另一个变量并比较结果。如果刻度比您的旧变量新得多,那么它很可能断开连接。这是一个很好的方法,但蜱可以从鼠标等其他东西上上升。在我的 Hook 类中没有鼠标钩子,因此当鼠标移动时我无法存储滴答计数的变量。所以现在我最终让它创建了一个新的钩子类实例并再次钩子。如果存储的刻度比新的刻度早 10000 刻度,它会每秒检查一次。
可以继续创建 Hooks 的新实例吗?它会不断地保持 Hooking/Unhooking,我想知道这是否会成为 Windows 的问题。
另外,如果有人有另一种方法来检测挂钩是否断开,请告诉我将解决整个麻烦。