C++ 中的 OS X 全局快捷方式

Posted

技术标签:

【中文标题】C++ 中的 OS X 全局快捷方式【英文标题】:OS X Global Shortcuts in C++ 【发布时间】:2012-01-09 21:39:51 【问题描述】:

我目前正在开发一个位于系统托盘中的 QT 应用程序(使用 C++),并且需要一个全局快捷方式。目前,QT 似乎没有提供一种向操作系统注册全局快捷方式的方法。我找到了 Qxt (http://libqxt.org),但是由于各种原因,这个库是不够的。

因此,我正在寻找一种在 OS X 中注册全局快捷方式的方法,以便即使我的应用程序没有焦点(记住它在系统托盘中!)我仍然可以与其功能交互。

任何想法如何做到这一点?

【问题讨论】:

【参考方案1】:

RegisterEventHotKey(碳)。彻底的写了can be found here。

您也可以安装CGEventTap。这写起来稍微复杂一些,但仍然很短。 A demo can be found here.

【讨论】:

我在发布此信息后偶然发现了 RegisterEventHotKey。我如何从 C++ 中调用它?我只找到了 Objective-c 的参考资料。 @Louis 我已经链接了一个示例 - 在 MyHotKeyHandler 的定义之后停止(到那时为止都是 C)。 @Louis 不客气。以防您不熟悉 OS X 开发;不要太依赖 Carbon 实现(它们是遗留 API)。 所以我读过。也许我需要一些更长期的东西 - 我可以考虑其他任何建议吗? 我提到了CGEventTap - 它不适合你吗? osxbook.com/book/bonus/chapter2/alterkeys

以上是关于C++ 中的 OS X 全局快捷方式的主要内容,如果未能解决你的问题,请参考以下文章

markdown OS X热键 - 快捷方式

在最小化到停靠后恢复 Qt 应用程序,使用 OS X 上的停靠快捷方式

OS X 终端快捷方式:跳转到行首/行尾

OS X快捷键小技巧

全局快捷方式工作但系统播放错误声音

Electron 全局快捷方式查找浏览器实例