首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未启用辅助时的热键CGEventTap

未启用辅助时的热键CGEventTap
EN

Stack Overflow用户
提问于 2015-08-30 18:28:36
回答 1查看 234关注 0票数 0

我曾经使用过addLocal,它可以在我的应用程序中工作,但是我想在全球范围内观察,所以我尝试了addGlobalMonitorForEventsMatchingMask:handler:,但是NSEventKeyDown根本没有被触发。显然,它需要启用辅助权限。

我能够在全球范围内观看NSScrollWheel事件。这很有趣。

在我投入大量的时间并来到我希望首先问的相同的障碍之前,使用CGEventTap来监视关键事件是否会在全球范围内工作,而不需要启动辅助?

ref/c/tdef/CGEventTapLocation

我还将探索其他方法,但我非常好奇(为了学习),CGEventTap是否会在全球范围内工作,没有任何问题。他似乎在这里暗示它可能有用,但评论显示出一些混淆:https://stackoverflow.com/a/9345536/1828637

我将使用的其他方法也是碳API。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-30 19:07:41

对于辅助设备权限,CGEventTap需要与全局事件监视器相同的访问权限。来自CGEventTapCreate()的文档

如果下列条件之一为真,事件点击将接收向上键和向下键事件:

  • 当前进程正在以根用户的身份运行。
  • 启用了对辅助设备的访问。在OSXv10.4中,您可以使用系统首选项、通用访问面板、键盘视图启用此功能。

我建议使用旧的碳RegisterEventHotKey()机制。它仍然是不受欢迎的,可用于64位。这与大部分碳形成了鲜明的对比。基本上,苹果意识到目前还没有合适的替代品。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32299785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档