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)
我想在我的应用程序中模拟 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)