2

キーストロークを模倣するために cgEvent を使用せずにコピー (command-c) 命令を送信する方法はありますか? テキストを取得したいアプリケーションのテキスト フィールドにアクセスできないため、手動でクリップボードにコピーする必要があり、cgevent の投稿にバグがあるようです。

Quartz のドキュメントによると、大文字のZを入力するには、次を使用する必要があります。

CGEventRef event1, event2, event3, event4;
event1 = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)56, true);
event2 = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)6, true);
event3 = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)6, false);
event4 = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)56, false);

ただし、この一連の指示を NSTimer に添付すると、最初に起動されたときにのみ機能します。出力例:

ZzzZzzzzZZzzZ (予想される ZZZZZZZZZ に対して)。

コピー コマンドをアクティブなウィンドウに送信するには、他にどのような方法がありますか?

4

2 に答える 2

1

生のキー イベントを投稿するよりも、アクセシビリティ API を使用して、他のアプリの [編集] メニューで [コピー] 項目をトリガーする方がよい場合があります。これはおそらくより信頼できるでしょう。

于 2010-01-12T00:47:15.700 に答える
0

あなたのコードとアプリケーションのコードとの関係を理解し​​ているかどうかわかりません。注射か何かですか?できない理由はあります[[window firstResponder] copy:nil]か?

あなたがしていることをもう少し説明してください。

于 2010-01-11T20:15:37.817 に答える