0
我想知道从效率(CPU /内存使用情况)角度来说,暂时挂起/绕过低级别鼠标/键盘挂钩的最佳方法是什么。暂停低级别挂钩的最佳方法(winapi)
目前的解决方案,我发现是在为例来设置一个全局变量,“doHook”,在钩PROC测试,如果没有设置让它与CallNextHookEx方法传递这样的:
if ((nCode < 0) || (!doHook))
{
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
是这是一个好的解决方案更好的方法?
感谢
感谢您的信息。 –
对于我目前正在执行的程序,我需要以光速启用钩子,所以我认为完全卸载并重新安装钩子不是一种选择,因为我认为重启要比我的解决方案慢得多(或者它可能不如我想象的那么慢?)。我想到了另一种解决方案:是不是可以创建一个专用于钩子的线程并暂停/暂停它然后恢复它? (我对线程还是比较新的)不应该有可能吗? –
暂停的线程就是这样:一个不会被安排执行的线程。当执行一个钩子链时,没有设施会跳过这个特定的线程。由于您关心的是性能,您应该使用分析器来衡量当前的性能,比较不同的实现,并做出明智的决定。 – IInspectable