MacOS Xで特定のウィンドウにマウスクリックを送信することは可能ですか?
私はすでに、を介して画面全体にクリックを送信することができましたCGPostMouseEvent
。制御したいウィンドウは互いに重なり合っているので、次のアイデアは、クリックをトリガーする前に適切なウィンドウを前面に表示することでした。それは動作しますが、完全な混乱で終わります... ;-)
文書化されていない方法で 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 に貼り付けました。
おそらく、ウィンドウ マネージャー API: SetUserFocusWindow()を使用して、マウス イベントを作成できます。
おそらくアクセシビリティ APIを使用できます。
もう少し複雑ですが、うまくいくはずです。