python - 如何在 Mac 上的 Python 中使用 CGEventCreateKeyboardEvent?

标签 python macos keyboard-events

我已经安装了 pyobjc(带有 Quartz),我想知道如何使用 CGEventCreateKeyboardEvent 正确创建键盘事件?请?我在互联网上根本找不到它,而且我什至不知道要导入什么。

一个示例代码会很好,告诉我要导入什么以及将什么放入 python

有人知道在 mac 中 CGEventCreateKeyboardEvent 所需的 FN(功能键) 代码吗?

最佳答案

evt = Quartz.CGEventCreateKeyboardEvent(None, vkey, True)

仅此而已。

如果你能找到 C 语言的例子,比如 this one in the docs ,将它们映射到 Python 很简单。

C:

CGEventRef event1, event2, event3, event4;
event1 = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)56, true);
event2 = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)6, true);
event3 = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)6, false);
event4 = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)56, false);

python :

events = [Quartz.CGEventCreateKeyboardEvent(None, 56, True),
          Quartz.CGEventCreateKeyboardEvent(None, 6, True),
          Quartz.CGEventCreateKeyboardEvent(None, 6, False),
          Quartz.CGEventCreateKeyboardEvent(None, 56, False)]

至于“导入什么”,如果不是很明显:import Quartz

如果你想将键映射到键代码,C 文档可以类似地翻译成 Python,但是 this simple library包装低级函数并将它们公开给 Python。

如果你想要一个很好的图形方式来找出正在通过你的系统发送的事件,试试Event Taps Testbench .如果您使用的是 Maverick,则必须阅读有关 Mavericks 兼容性的说明,否则它将无法工作。无论如何,运行它,添加点击,例如,Key Down、Key Up 和 Flags Changed,单击 Current Event 或 Event History,然后观察键码飞过。

关于python - 如何在 Mac 上的 Python 中使用 CGEventCreateKeyboardEvent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21396985/

相关文章:

python - 使用 Python 写入文本文件时出现编码问题

python - Graphviz 重叠边缘标签

objective-c - 用户数据存储位置 : in a Sandboxed Mac app container or in Home/Documents?

macos - 是否可以像IPC一样使用Mac OS X XPC在进程之间交换消息?如何?

javascript - jQuery Keypad/Primefaces 键盘重新映射空格键

java - Java Applet 中的键盘输入

python - 为什么我的 gitlab CI 中出现错误,但没有找到 Pip?

python - celery 不释放内存

objective-c - NSOpenPanel 选择目录(不是文件)

c# - 将键盘事件发送到 C# 中不处理 Windows 事件的另一个应用程序