等待处理程序按键

时间:2018-02-02 18:28:57

标签: objective-c macos cocoa synchronous cgeventtap

有人发布了一段代码,用于以编程方式按键:

- (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);

}

这不是同步的。什么是确保按键处理的正确方法?

我想过使用随后的虚拟按键,但我猜想所有按键组合都可以使用。我的目标是以编程方式在当前活动的应用程序中复制/粘贴数据,而无需使用辅助功能编程。

0 个答案:

没有答案