gpt4 book ai didi

swift - 在 macOS Sierra 中使用 Quartz 事件模拟击键

转载 作者:行者123 更新时间:2023-11-28 06:33:29 26 4
gpt4 key购买 nike

我在 macOS 中模拟击键,并将它们发送到事件应用程序。我正在按照 https://stackoverflow.com/a/27487493/5600424 的方式进行操作但在 Swift 3 中。例如,发送一个 'a':

let eventSource = CGEventSource(stateID: CGEventSourceStateID.hidSystemState)
let key: CGKeyCode = 0 // virtual key for 'a'
let eventDown = CGEvent(keyboardEventSource: eventSource, virtualKey: key, keyDown: true)
let eventUp = CGEvent(keyboardEventSource: eventSource, virtualKey: key, keyDown: false)
let location = CGEventTapLocation.cghidEventTap
eventDown.post(tap: location)
eventUp.post(tap: location)

这在 OSX El Capitan(Swift 3、Xcode 8.0)上运行良好,但在更新到 macOs Sierra 后停止运行。应用程序本身在处于事件状态时仍会接收击键,但是当其他应用程序处于事件状态时,事件似乎丢失了。我试图弄清楚发生了什么但没有成功,文档也无济于事。任何帮助将不胜感激,谢谢!

最佳答案

问题中引用的代码工作正常,从 El Capitan 升级到 Sierra 时其行为没有改变,这与声称的相反。

其他应用程序未收到击键,因为一旦应用程序处于后台,由于独立原因,不再调用使用上述代码发送键盘事件的函数。

关于swift - 在 macOS Sierra 中使用 Quartz 事件模拟击键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39647443/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com