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

时间:2014-01-28 04:43:42

标签: python macos keyboard-events

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

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

有没有人知道cGEventCreateKeyboardEvent中mac的 FN(功能键) 所需的代码?

1 个答案:

答案 0 :(得分:3)

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兼容性的说明,否则它将无效。无论如何,运行它,添加一个点击,例如,按键,向上键和更改标志,单击当前事件或事件历史记录,并观察键码飞过。