問題タブ [accessibility-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
306 参照

macos - ココア:MouseDragでドラッグされているものを特定する

onMouseDragイベント中に何がドラッグされているかを判断する方法はありますか?具体的には、ウィンドウがドラッグされているかどうかを知りたいのですが。

私は次のことを試しました。アクセシビリティAPI:アクティブなウィンドウの初期位置を保存し、ドラッグ中にウィンドウの位置を再度照会して、値を比較します。この方法の問題は、Accessibility APIが、マウスの移動を停止するまで(マウスの主ボタンを押したまま)、ウィンドウの位置を更新しないことです。少し停止した後、マウスが再びドラッグを開始すると、位置が更新されます。

NSWindowDelegateをアクティブウィンドウにアタッチする:これはかなり新しいので、フォーカスされた/アクティブなウィンドウのNSWindowを見つける方法がわかりません。

前もって感謝します!

更新:Accessibility APIを使用してアクティブなウィンドウを取得し、AXObserverRefをアタッチしてkAXMovedNotificationを取得しました。CFRunLoopAddSourceを使用して、このオブザーバーを実行ループに追加しました。その結果、通知へのコールバックがキューに入れられ、ウィンドウのドラッグを停止した場合にのみ、通知への複数の呼び出しが発生します。このようにキューに入れられずにコールバックをすぐに起動して、ドラッグが停止したときではなく、ウィンドウがドラッグされているときにコードを実行できるようにする方法はありますか?

0 投票する
0 に答える
1007 参照

macos - CFRunLoopAddSource: すぐに実行する実行モード

オブザーバーをアクティブなウィンドウ (私のものだけでなく、任意のプログラムである可能性があります) に追加して、動いているかどうかを教えてくれます。オブザーバーを実行ループに追加する方法は次のとおりです。

現在、オブザーバーに関連付けられているコールバックは、出力ウィンドウに何かを出力するだけです。私が観察したことは、アクティブなウィンドウ (これアプリのウィンドウである可能性があります) をドラッグしているときは何も出力されませんが、停止するとすぐに複数の printf 結果が出力されることです。一度に実行するためのアイドル時間が発生するまで、コールバックへの呼び出しがキューに入れられているようです。

アイドル時間を待たずにコールバックを実行する方法はありますか? たぶん、それを行うCFRunLoopModeですか?

0 投票する
2 に答える
1034 参照

java - 外部JavaGUIでのイベントの追跡

外部のJavaデスクトップアプリケーションからイベント情報とUI要素データを取得する方法はありますか?具体的には、特定のテキストボックスの値が変更されたときにログに記録し、他のいくつかの入力要素からデータを取得する必要があります。

これは、顧客向けの概念実証プロジェクト用です(マルウェアではありません;-))。

Javaアプリケーションはすでに存在しており、追加または再コンパイルすることはできません。「リスニング」アプリケーションは、.NETまたはJavaを使用して構築できます。WindowsイベントフックとJavaAccessibilityAPIに関する限られた情報を見つけましたが、主に知識が不足しているためにブロックされました。

これが簡単にできるかどうかはわかりません-考えていただければ幸いです。

0 投票する
0 に答える
206 参照

python - Active Accessibility Windows 8 の Python バインディング?

Windows 7 で pyAA (Microsoft Active Accessibility の Python バインディング) を再調整して再構築する必要がありましたが、これを Windows 8 に移行する必要があるようです。再コンパイルする必要がないことを願っています。再びバインディング!

Windows バージョン 8 の Windows バージョン間で Microsoft Active Accessibility に (開発者の観点から) 大きな違いがあるかどうか知っている人はいますか?

前もって感謝します!

0 投票する
1 に答える
425 参照

objective-c - AXUIelement の子の変更を観察しますか?

特定の親 AXUIelement について、その子のいずれか (属性) が変更された場合、または子が追加/削除された場合に通知を受け取ることは可能ですか?

0 投票する
1 に答える
420 参照

objective-c - AXWindowMoved(AXObserver経由)-継続的な更新?

ドラッグ開始時よりもはるかに遅れて通知を送信するkAXWindowMovedNotification(アクセシビリティAPI-AXObserver経由でリッスン)の代わりに、継続的な更新を取得するために利用できる他の方法はありますか?可能であれば、継続的な更新が必要です。

または、(別のアプリで)ウィンドウの動きを検出するための代替方法はありますか?実際、必要なのはドラッグの正確な開始時間と終了時間だけです。その間、私は本当に気にしません。kAXWindowMovedNotificationは、開始時刻が遅すぎることを報告します。

0 投票する
1 に答える
980 参照

objective-c - NSWorkspaceDidActivateApplicationNotificationは、アプリケーションを使用する準備ができる前に呼び出されます(起動されます)

NSWorkspaceDidActivateApplicationNotificationとNSWorkspaceDidLaunchApplicationNotificationの両方の通知を使用して、ユーザーが操作しているアプリを確認しています。

問題は、アプリケーションを開いたばかりでまだ起動している場合、最初にアクティブ化通知を受け取り、その後すぐに起動通知を受け取ることです。

activateメソッド内で、アプリがまだ起動中であり、まだ使用する準備ができていないことを知る方法はありますか?(まだドックで跳ねています)

Appleによるichatサンプルプロジェクトは上記のアプローチを使用せず、代わりに起動通知のみをリッスンしていることがわかります。次に、kAXApplicationActivatedNotificationを使用して、アプリにAXObserverを追加します。これは好ましい方法ですか?(また、NSRunningApplicationsを使用して、既にロードされているすべてのアプリにオブザーバーを追加します)。

メモリをあまり消費しないと思うので、単純なNSNotificationsだけを使い続けたいと思いました。(ロードされたすべてのアプリについてオブザーバーを維持する必要はありません)。

0 投票する
1 に答える
1381 参照

macos - Mac OS X のアクセシビリティ API で現在のキーボード フォーカス座標を取得するにはどうすればよいですか?

現在のキーボード (マウスではない) フォーカスの位置の座標を取得するための Mac OS X アクセシビリティ API を探しています。http://www.apple.com/accessibility/pdf/Mac_OS_X_Tiger_vpat.pdfで見つけたドキュメントの 2 ページによると、実行可能です。

サポート: Mac OS X は、アクセシビリティ API を介して現在のキーボードとマウスのフォーカスの位置を支援技術に公開し、画面上のフォーカスを視覚的に示します。

上記のステートメントにもかかわらず、API 自体が見つからないようです。私はベテランの開発者 (1982 年以来コーディング) ですが、Mac OS X で開発したことはありません。優しくしてください。