我已经安装了pyobjc(使用Quartz),我想知道如何使用CGEventCreateKeyboardEvent正确创建键盘事件?请?我在互联网上根本找不到它,而且我甚至不知道要导入什么。
示例代码会很好,告诉我要导入什么以及将什么放入python
有没有人知道cGEventCreateKeyboardEvent中mac的 FN(功能键) 所需的代码?
答案 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兼容性的说明,否则它将无效。无论如何,运行它,添加一个点击,例如,按键,向上键和更改标志,单击当前事件或事件历史记录,并观察键码飞过。