c++ - 如何在 Win32 应用程序中捕获 CTRL + CTRL 按键?

标签 c++ keyboard shortcut ctrl registerhotkey

如何全局捕获用户按 Ctrl 两次 (Ctrl + Ctrl)。我希望能够隐藏我的应用程序窗口,然后在用户使用类似于 Google 快速搜索框的 CtrlCtrl 按键调用它时使其可见。用户可能将焦点放在不同的窗口上。我看过 RegisterHotKey,但这似乎适用于 MODIFIERS + 字符键,除非我弄错了。

最佳答案

要创建这样的热键,请执行以下操作:

ATOM hotkey = GlobalAddAtom("Your hotkey atom name");
if(hotkey) RegisterHotKey(hwnd, hotkey, MOD_CONTROL, VK_CONTROL);
else { ...error... }

然后处理WM_HOTKEY消息:

case WM_HOTKEY:
    if(wParam == hotkey)
    {
       // CTRL pressed!!!
    }
break;

我想您会发现自己需要存储之前是否按下了 CTRL 键。例如,如果在过去 500 毫秒内按下了一次,并且用户再次按下了它,则您按下了 CTRL+CTRL

关于c++ - 如何在 Win32 应用程序中捕获 CTRL + CTRL 按键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2239591/

相关文章:

c++ - 从基类使用和重新定义 typedef

c++ - 在模板模板参数中抛出多模板类 - 模板绑定(bind)?

c - 如何用 C 处理 Linux 控制台中按下的按键?

java - 在netbeans中停止执行程序的快捷方式

c++ - 如何检查模板类中的变量是否为字符串类型?

c++ - 将VS2017 15.2升级到15.3破坏了第三方库

flutter - 键盘将 modalBottomSheet 推出边界,resizeToAvoidBottomInset 不起作用

python - 如何在 docker 容器中使用 'keyboard' python 模块而不出现错误?

c++ - 是否可以更改 Xcode 缩进注释行的方式?

web - 我可以使用哪种键盘快捷键而不与现代浏览器发生冲突?