Cocoa: 在CGEvent中模拟Command+Tab

Cocoa: Simulating Command+Tab in CGEvent

我想在我的应用程序中模拟 Application Switcher,我认为 CGEvent 也许可以做到。

嗯,了解了一些CGEvent的基本知识后,我就可以模拟按键了Command + Tab。但是应用程序切换器 window 只是一闪而过并立即切换到另一个应用程序。

我意识到我需要 hold 命令键并按 Tab 键来选择应用程序。所以,这是我的代码:

// Hold the Command key
let source = CGEventSourceCreate(.HIDSystemState)
let event = CGEventCreateKeyboardEvent(source, 55 as CGKeyCode, true)
CGEventSetIntegerValueField(event, .KeyboardEventAutorepeat, 1)
CGEventPost(.CGHIDEventTap, event)

// Press Tab key once
let source = CGEventSourceCreate(.HIDSystemState)
let keyDown = CGEventCreateKeyboardEvent(source, 48 as CGKeyCode, true)
CGEventSetFlags(keyDown, .MaskCommand)
CGEventPost(.CGHIDEventTap, keyDown)
let keyUp = CGEventCreateKeyboardEvent(source, 48 as CGKeyCode, false)
CGEventPost(.CGHIDEventTap, keyUp)

但是不行!有任何想法吗?谢谢!

按键事件中缺少命令标志。在 CGEventPost(.CGHIDEventTap, keyUp).

前添加 CGEventSetFlags(keyUp, .MaskCommand)