我想为键盘钩子创建一个好的库。我使用方法SetWindowsHookEx,我注意到,如果我的应用程序的主线程是bussy,那么应该在任何系统KeyDown事件中调用的方法hookProc都不会被执行。我认为钩子应该这样做,另一个线程将负责它。那可能吗?我该怎么办?
答案 0 :(得分:1)
LowLevelKeyboardProc的Microsoft帮助页面提及
如果挂钩过程超时,系统会将消息传递给 下一个钩子。但是,在Windows 7及更高版本中,挂钩是静默的 已删除而未被调用。应用程序无法知道钩子是否被移除。
我怀疑这就是发生在你身上的事。你的HookProc函数应该非常快:我的工作只是在std :: vector中推送键事件。真正的代码在另一个线程中执行。