如何捕获CTRL +空格键+空格键

yas*_*sso 0 c++ win32gui

我将如何捕获按下“ Ctrl +空格+空格”的用户!

我使用以下代码成功测试了“ Ctrl +空格”:

RegisterHotKey(0, 1, MOD_CONTROL, VK_SPACE);
Run Code Online (Sandbox Code Playgroud)

Ben*_*Ben 5

传统上就是这样写的Ctrl+Space, Space。也就是说,按Ctrl+ Space,然后按Space

首先,RegisterHotKey在系统范围内。如果只想在应用程序中使用多级键盘快捷键,则不应使用RegisterHotKey。

其次,您不能使用RegisterHotKey来执行此操作,必须通过以下方式处理两级热键:

  • 在某处设置变量以表示多级热键已经开始,以及它是什么。
  • 编写一个全局键盘挂钩,执行以下操作

    • 检查热键是否已开始,如果不是,则为正常行为,否则
    • 检查热键的后半部分。如果匹配,请采取正确的措施。
    • 无论是否匹配,都取消“热键挂起”状态。

您只能在按下热键时注册键盘钩,然后再取消注册,或一直保留。

  • @yasso,问题在于RegisterHotKey **做不到**您想要的。要做您想做的事情,您需要阅读我在回答中写的内容。同样,如果仅当用户使用您的应用程序时,RegisterHotKey是错误的函数。 (4认同)