1

MacOS Xで特定のウィンドウにマウスクリックを送信することは可能ですか?

私はすでに、を介して画面全体にクリックを送信することができましたCGPostMouseEvent。制御したいウィンドウは互いに重なり合っているので、次のアイデアは、クリックをトリガーする前に適切なウィンドウを前面に表示することでした。それは動作しますが、完全な混乱で終わります... ;-)

4

3 に答える 3

4

文書化されていない方法で Cocoa アプリケーションにイベントを送信できます。

CGEventPostToPSN

以下は、Dave Keck によるコード サンプルです。彼はメーリングリストに小さなアプリケーションを投稿しました。

customEvent = [NSEvent mouseEventWithType: [event type]
                                 location: [event locationInWindow]
                            modifierFlags: [event modifierFlags] | NSCommandKeyMask
                                timestamp: [event timestamp]
                             windowNumber: WID
                                  context: nil
                              eventNumber: 0
                               clickCount: 1
                                 pressure: 0];

CGEvent = [customEvent CGEvent];
CGEventPostToPSN(&psn, CGEvent);

それをアーカイブするために、さらにソース コードを pastie.org に貼り付けました。

参考:cocao-devメーリングリストのスレッド全体

于 2009-05-13T11:30:57.413 に答える
1

おそらく、ウィンドウ マネージャー API: SetUserFocusWindow()を使用して、マウス イベントを作成できます。

于 2009-04-07T18:31:10.200 に答える
1

おそらくアクセシビリティ APIを使用できます。

もう少し複雑ですが、うまくいくはずです。

于 2009-04-07T18:18:10.573 に答える