【问题标题】:Windows keyboard hook hangs debuggerWindows 键盘挂钩挂起调试器
【发布时间】:2012-03-16 05:02:53
【问题描述】:

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

但是,如果我在钩子处于活动状态时在 Visual Studio 中遇到断点,然后按下某个键,Visual Studio 和我的应用程序将完全锁定。这是一个问题,因为我通常使用 F 键来单步执行代码。如果我使用鼠标并从 Visual Studio 的“调试”菜单中前进,它工作正常。但是使用 F10 等。就是这样的习惯,我经常忘记用鼠标。

我可以做些什么来恢复我的键盘快捷键?还是另一种听键盘的方法?

【问题讨论】:

    标签: windows visual-studio debugging keyboard hook


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-18
      • 2023-03-13
      相关资源
      最近更新 更多