Windows键盘挂钩挂起debugging器

我有一个从主应用程序中的辅助(而不是GUI)线程启动的插件DLL。 DLL必须从应用程序的主窗口中获取键盘事件。 我正在使用SetWindowsHookEx() ,它工作得很好。

但是,如果我在钩子处于活动状态时在Visual Studio中遇到了断点,然后按下一个键,则Visual Studio和我的应用程序将完全locking。 这是一个问题,因为我通常使用F键来遍历代码。 如果我使用鼠标,并从Visual Studio的debugging菜单前进,它工作正常。 但是使用F10等。 是这样一个习惯,我通常忘记使用鼠标。

有什么我可以做我的键盘快捷键回来? 或者听不同的方法来听键盘?

这是不可避免的,调试程序中断会阻止处理通知的挂钩,所以键盘死机。 在另一台机器上使用远程调试器是调试这样的代码的好方法。 您还需要增加挂钩超时时间,以便Windows在调试时不会破坏挂钩,HKEY_CURRENT_USER \ Control Panel \ Desktop \ LowLevelHooksTimeout设置。 假设您正在使用WH_KEYBOARD_LL。