問題タブ [microsoft-ui-automation]
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.
c++ - UIAを使用してHEXでIUIAutomationElementのウィンドウハンドルを取得する方法は?
IUIAutomationElement の HWND のテキスト表現を取得または作成する方法を探していますが、調査したときに見つけることができるのは次のとおりです。
1) 不透明なネイティブ ハンドルを取得する方法
2) ネイティブハンドルで要素を検索する方法
私の目標は可能ですか?
お時間を割いていただき、ありがとうございました。
c# - 特定の画面座標で UIAutomation を使用して、サードパーティ アプリケーションのコントロールのウィンドウ オートメーション ID を取得する方法
私は UIAutomation を使用しており、サード パーティ製アプリケーションの任意のコントロールのウィンドウ ID を取得しようとしています。画面上の特定の座標にあるコントロールの ID を調べる方法を知りたいです。
例: デスクトップで電卓、メモ帳、および Word を実行しています。それらのすべてが実行され、画面を部分的に共有しています。プログラムを実行し、画面上の任意の場所をクリックして、基になるコントロールのウィンドウ ID を取得できるようにしたい (マウスの下にある場合)。
この機能を実現するには、何を使用する必要がありますか。ある種のマウス フックが必要であることは理解していますが、実際の問題は、マウスがクリックされた画面上のコントロールのウィンドウ ID (ウィンドウ ハンドルではない) を取得する方法です。
c++ - アウトプロセス MS UI オートメーション クライアントを作成する方法
私が読んだ UIA に関するドキュメントの多くは、アウト プロセスで使用できることを称賛しており、アウト プロセス MSAA クライアントよりもパフォーマンスが大幅に向上しています。このようにあなたのクライアント。
CoCreateInstance の呼び出し方法に関係していると推測しているので、最初に試したのは、引数を CLSCTX_INPROC_SERVER から CLSCTX_LOCAL_SERVER に変更することでした。その結果、「クラスが登録されていません」というエラーが発生しましたが、原因はまだわかりません。 . 私の側で必要な追加の手順はありますか?
ご協力ありがとうございます。
c# - 実行時に他の C# アプリケーションから XAML プロパティを設定する (AutomationProperties.AutomationId)
与えられた 2 つのアプリケーション:
- すべてのコントロールが AutomationId を持っているわけではなく、変更できない1 つの WPFアプリケーション。さらに、アプリケーションは AutomationId を設定せずに実行時にコントロールを追加します。
- 上記の WPF アプリケーションを自動化する 1 つのコンソール アプリケーション
ほぼ同じ時間内にすべての要素にアクセスしたいので、それが必要です。(使用する直前に自動化要素を検索すると、時間が (ms から s まで) 大きく異なるようです - 要素の量やツリー層によって異なります)
WPF の実行時に、コンソール アプリケーション内で WPF コントロールの AutomationIds を設定したいと考えています。この問題の解決策を考えられる場合は、知っておくと便利です!
私が今まで試したこと:
1.)反省
エラー メッセージ:「'System.String' 型のオブジェクトを 'System.Windows.Automation.AutomationProperty' 型に変換できません」
代わりに次を使用すると、エラーはスローされませんが、XAML では何も変更されません
2.)直接
3.) DependencyObjectsとDependencyPropertiesも有望に思えますが、これまでのところ解決策を思いつきませんでした。誰かがそれを経験していますか??
windows - IUIAutomationElement FindAll/FindAllBuildCache が一部のマシンで null を返す
ウィンドウから要素を取得するために UI オートメーションを使用しています。
次の API の
IUIAutomationElement::FindAllを使用
IUIAutomationElement::FindAllBuildCache
これはほとんどのマシンで機能し、一部のマシンでは null を返しますが、UIAutomation 要素は正しく取得されます。OSとソフトウェアが同じであるにもかかわらず、ハードウェアのみが異なる一部のマシンで動作しない理由は何ですか。
c# - AutomationElement の可視性またはその他のプロパティを設定する
Microsoft UI AutomationオブジェクトIsOffScreen
のプロパティを設定するにはどうすればよいですか?AutomationElement
自動化要素を非表示にする必要があります。
TransformPattern
メソッドのみを見つけることができましたResize
が、このパターンは私のコントロール (ListView) ではサポートされていません。
これを達成することはまったく可能ですか?試しWPF Inspector
てみSnoop
ましたが、どちらもこのテキスト ボックスの表示プロパティを変更できません。読み取り専用です。
アップデート
Visibility
WPF インスペクターのFoundプロパティと 'Snoop (
IsVisible is readonly, but
Visibility` が機能するため、どちらも要素の可視性を変更できます。今、私はそれが可能であることを知っています。
現在、私はそれがどのように機能するかを理解しようとしています。利用可能なソース コードがありますが、かなり大きなアプリケーションです。小さいものやサンプルはありますか?
c# - UIAutomation を使用して ControlType.Spinner 要素の値を取得する
ウィンドウとスピナー オブジェクトを取得しました。
次に、スピナー RangeValuePatterm にアクセスしています。
そして、私はシンプルに使用できるはずです:
その値を変更しますが、機能していません。タイプ 'System.ArgumentOutOfRangeException' の例外が発生しています - 値が最大値を超えています。(本当ですが、最大許容値を変更する方法がわかりません...)。
また、単純なので、現在の値を取得する方法もわかりません。
入力された値に関係なく、常に 0 を返します。UIAutomationを介してアクセスする代わりに、キーを送信してスピナーの値を設定することはできますが、スピナーの実際の値を読み取る方法がわからないため、正しいかどうかを確認できません。