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