gpt4 book ai didi

vb.net - 可以连续挂上和解开键盘吗?

转载 作者:行者123 更新时间:2023-12-05 01:11:29 24 4
gpt4 key购买 nike

我对 vb.net 中的 WindowsHookEx 有疑问。如果我的电脑重载,尤其是 3D 渲染,Windows 会自动断开我的键盘 Hook 并且我的热键停止工作。我四处搜索,似乎没有办法检测钩子(Hook)是否处于事件状态或断开连接。所以我尝试了“moodforaday”提出的这个方法 Is it possible to detect when a low-level keyboard hook has been automatically disconnected by Windows?hook-has-been-automatically-d

他指出定期使用 GetLastInputInfo 并在使用键时将 GetLastInputInfo 存储到另一个变量并比较结果。如果 tick 比您的旧变量新得多,那么它很可能已断开连接。这是一个很好的方法,但滴答声可以从其他东西(如鼠标)上升。在我的 Hook 类中没有鼠标钩子(Hook),因此我无法在移动鼠标时存储滴答计数的变量。所以现在我最终让它创建了一个钩子(Hook)类的新实例并再次钩子(Hook)。它每秒检查一次存储的报价是否比新报价早 10000 个报价。

继续创建新的 Hooks 实例可以吗?它会不断保持 Hook /脱钩,我想知道这是否会成为 Windows 的问题。

此外,如果有人有其他方法来检测 Hook 是否断开连接,请告诉我这将解决整个麻烦。

最佳答案

在后台线程中进行 3D 渲染。仅对直接访问 UI 控件的代码使用 Control.Invoke

或者,您可以将渲染分成非常小的部分并将它们作为消息发送给您自己,以便在主线程上处理。这样您将能够处理内部和外部消息。

在这两种情况下,您的应用程序都会及时响应,Windows 将没有理由认为它没有响应,并且您的键盘快捷键将保持不变。

关于vb.net - 可以连续挂上和解开键盘吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11188246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com