CocoaアクセシビリティAPI、アクティブにせずに背景のウィンドウをクリックできますか?

StackOverflow https://stackoverflow.com/questions/2747931

質問

私はこれの解決策を永遠に探してきたので、私のものよりも大きな心の頭脳を探し出すと思いました。アクセシビリティAPIを使用して別のプログラムを操作するココアアプリを開発しています(これはホットキーアプリです)。私が制御しているアプリには、通常、複数のウィンドウが開いており、他のアプリは他のアプリの背後に隠れています。可能であれば、私がやりたいのは、アクセシビリティAPIを使用してマウスイベントをウィンドウに送信することです。 。私がこれをやろうとしている理由は、マウスイベントをこの他のウィンドウに送信すると、それをフォアグラウンドに強制し、ユーザーの第一のウィンドウとの相互作用を破壊するからです。

これはWindowsで可能です - どうやら、私のものと同様のアプリがそこで行うからです - しかし、ウィンドウマネージャーの仕組みを考えると、これはココアでは不可能だと感じています。私は間違っていますか?

役に立ちましたか?

解決

アクセシビリティはそれよりも高いレベルです。たとえば、あなたは送信します AXPress へのアクション AXButton オブジェクトですが、「プレス」は必ずしもクリックではありません。たとえば、ビューが焦点を合わせている間にスペースバーを押すことも「プレス」です。 AXPress 「あなたのことをする」を意味する高レベルのアクションであり、明らかに他のビュー(ボタンなど)(フィールドなど)ではなく、いくつかのビュー(ボタンなど)に意味があります。

アプリケーションをアクティブにするアクセシビリティは、意図した目的から見ると、障害者向けの支援デバイスから見ると意味があります。ユーザーがどんな手段でも何かを「押す」場合、おそらくアプリケーションをアクティブにして作業するつもりです。

クォーツイベントサービス あなたを手に入れます ほとんど そこに:できます 制御するプロセスのイベントタップを作成する, 、そしてあなたはイベントを偽造することができます それらをタップに送ります. 。キャッチはそれです タップが発射されたときにのみイベントをタップに送信できます- アプリケーションがすでに対処するイベントがある場合。そうでないとき、あなたは立ち往生しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top