有人发布了一段代码,用于以编程方式按键:
- (void)postCommandAndKey:(CGKeyCode)key {
CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);
CGEventRef keyDown = CGEventCreateKeyboardEvent(source, key, TRUE);
CGEventSetFlags(keyDown, kCGEventFlagMaskCommand);
CGEventRef keyUp = CGEventCreateKeyboardEvent(source, key, FALSE);
CGEventPost(kCGAnnotatedSessionEventTap, keyDown);
CGEventPost(kCGAnnotatedSessionEventTap, keyUp);
CFRelease(keyUp);
CFRelease(keyDown);
CFRelease(source);
}
这不是同步的。确保按键已被处理的正确方法是什么?
我想过使用随后的虚拟按键,但我想所有的组合键都可以使用。我的目标是以编程方式在当前活动的应用程序中复制/粘贴数据,而不使用辅助功能编程。