有没有办法在普通 Apple 笔记本电脑上模拟媒体键(音量增大/减小、播放、暂停、上一个、下一个)的按键?
如何?
最佳答案
这需要一些时间和许多技巧(尝试使用 ctypes、IOKit 原生界面、Quartz 和/或 Cocoa)。现在这似乎是一个简单的解决方案:
#!/usr/bin/python
import Quartz
# NSEvent.h
NSSystemDefined = 14
# hidsystem/ev_keymap.h
NX_KEYTYPE_SOUND_UP = 0
NX_KEYTYPE_SOUND_DOWN = 1
NX_KEYTYPE_PLAY = 16
NX_KEYTYPE_NEXT = 17
NX_KEYTYPE_PREVIOUS = 18
NX_KEYTYPE_FAST = 19
NX_KEYTYPE_REWIND = 20
def HIDPostAuxKey(key):
def doKey(down):
ev = Quartz.NSEvent.otherEventWithType_location_modifierFlags_timestamp_windowNumber_context_subtype_data1_data2_(
NSSystemDefined, # type
(0,0), # location
0xa00 if down else 0xb00, # flags
0, # timestamp
0, # window
0, # ctx
8, # subtype
(key << 16) | ((0xa if down else 0xb) << 8), # data1
-1 # data2
)
cev = ev.CGEvent()
Quartz.CGEventPost(0, cev)
doKey(True)
doKey(False)
for _ in range(10):
HIDPostAuxKey(NX_KEYTYPE_SOUND_UP)
HIDPostAuxKey(NX_KEYTYPE_PLAY)
(虽然我现在需要在 Python 中使用它,但我的问题并不是真正与 Python 相关的,当然您可以轻松地将其翻译成任何其他语言,尤其是 ObjC。)
关于macos - 在 Mac 上模拟媒体按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11045814/