誰かがプログラムでキーを押すためのコードのスニペットを投稿しました:
- (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);
}
これは同期ではありません。キーの押下が処理されたことを確認する適切な方法は何ですか?
後でダミーキーを押すことを考えましたが、すべてのキーの組み合わせが使用されている可能性があると思います。私の目標は、アクセシビリティ プログラミングを使用せずに、現在アクティブなアプリケーションのデータをプログラムでコピー/貼り付けることです。