0

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

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

}

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

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

4

0 回答 0