Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Mac上的Python中使用CGEventCreateKeyboardEvent?_Python_Macos_Keyboard Events - Fatal编程技术网

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

如何在Mac上的Python中使用CGEventCreateKeyboardEvent?,python,macos,keyboard-events,Python,Macos,Keyboard Events,我已经安装了pyobjc(带有Quartz),我想知道如何使用CGEventCreateKeyboardEvent正确创建键盘事件?请我在网上根本找不到它,而且我甚至不知道要导入什么 一个示例代码会很好,告诉我导入什么以及将什么放入python 有人知道CGEventCreateKeyboardEvent mac中的FN(功能键)所需的代码吗 evt = Quartz.CGEventCreateKeyboardEvent(None, vkey, True) 就这些 如果你能找到C语言的例子,比

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

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

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

evt = Quartz.CGEventCreateKeyboardEvent(None, vkey, True)
就这些

如果你能找到C语言的例子,比如,把它们映射到Python是很简单的

C:

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,但是包装了底层函数并将它们公开给Python


如果您想用一种很好的图形方式来找出通过系统发送的事件,请尝试。如果您使用的是Maverick,您必须阅读关于Mavericks兼容性的说明,否则它将无法工作。无论如何,运行它,添加一个点击,例如,按键向下、按键向上和标志更改,单击当前事件或事件历史记录,并观察按键代码飞过。

如果要双击功能键,我会执行
events=[Quartz.CGEventCreateKeyboardEvent(无,63,True),Quartz.CGEventCreateKeyboardEvent(无,63,False),Quartz.CGEventCreateKeyboardEvent(无,63,True),Quartz.CGEventCreateKeyboardEvent(无,63,False)]
@user3151828:是的,这将双击功能键。无论你试图模拟双击功能键的程序实际上可能是在观察标志的变化,而不是按键,或者可能是在观察较低的级别,因为这是一件非常奇怪的事情…这个功能在HighSierra上不再起作用。导致分割错误。你知道这件事吗?
events = [Quartz.CGEventCreateKeyboardEvent(None, 56, True),
          Quartz.CGEventCreateKeyboardEvent(None, 6, True),
          Quartz.CGEventCreateKeyboardEvent(None, 6, False),
          Quartz.CGEventCreateKeyboardEvent(None, 56, False)]