問題タブ [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.

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

c++ - UIAを使用してHEXでIUIAutomationElementのウィンドウハンドルを取得する方法は?

IUIAutomationElement の HWND のテキスト表現を取得または作成する方法を探していますが、調査したときに見つけることができるのは次のとおりです。

1) 不透明なネイティブ ハンドルを取得する方法

2) ネイティブハンドルで要素を検索する方法

私の目標は可能ですか?

お時間を割いていただき、ありがとうございました。

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

c# - 特定の画面座標で UIAutomation を使用して、サードパーティ アプリケーションのコントロールのウィンドウ オートメーション ID を取得する方法

私は UIAutomation を使用しており、サード パーティ製アプリケーションの任意のコントロールのウィンドウ ID を取得しようとしています。画面上の特定の座標にあるコントロールの ID を調べる方法を知りたいです。

例: デスクトップで電卓、メモ帳、および Word を実行しています。それらのすべてが実行され、画面を部分的に共有しています。プログラムを実行し、画面上の任意の場所をクリックして、基になるコントロールのウィンドウ ID を取得できるようにしたい (マウスの下にある場合)。

この機能を実現するには、何を使用する必要がありますか。ある種のマウス フックが必要であることは理解していますが、実際の問題は、マウスがクリックされた画面上のコントロールのウィンドウ ID (ウィンドウ ハンドルではない) を取得する方法です。

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

c++ - アウトプロセス MS UI オートメーション クライアントを作成する方法

私が読んだ UIA に関するドキュメントの多くは、アウト プロセスで使用できることを称賛しており、アウト プロセス MSAA クライアントよりもパフォーマンスが大幅に向上しています。このようにあなたのクライアント。

CoCreateInstance の呼び出し方法に関係していると推測しているので、最初に試したのは、引数を CLSCTX_INPROC_SERVER から CLSCTX_LOCAL_SERVER に変更することでした。その結果、「クラスが登録されていません」というエラーが発生しましたが、原因はまだわかりません。 . 私の側で必要な追加の手順はありますか?

ご協力ありがとうございます。

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

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.) DependencyObjectsDependencyPropertiesも有望に思えますが、これまでのところ解決策を思いつきませんでした。誰かがそれを経験していますか??

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

windows - IUIAutomationElement FindAll/FindAllBuildCache が一部のマシンで null を返す

ウィンドウから要素を取得するために UI オートメーションを使用しています。

次の API の
IUIAutomationElement::FindAllを使用
IUIAutomationElement::FindAllBuildCache

これはほとんどのマシンで機能し、一部のマシンでは null を返しますが、UIAutomation 要素は正しく取得されます。OSとソフトウェアが同じであるにもかかわらず、ハードウェアのみが異なる一部のマシンで動作しない理由は何ですか。

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

c# - AutomationElement の可視性またはその他のプロパティを設定する

Microsoft UI AutomationオブジェクトIsOffScreenのプロパティを設定するにはどうすればよいですか?AutomationElement

自動化要素を非表示にする必要があります。

TransformPatternメソッドのみを見つけることができましたResizeが、このパターンは私のコントロール (ListView) ではサポートされていません。

これを達成することはまったく可能ですか?試しWPF InspectorてみSnoopましたが、どちらもこのテキスト ボックスの表示プロパティを変更できません。読み取り専用です。

アップデート

VisibilityWPF インスペクターのFoundプロパティと 'Snoop (IsVisible is readonly, butVisibility` が機能するため、どちらも要素の可視性を変更できます。今、私はそれが可能であることを知っています。

現在、私はそれがどのように機能するかを理解しようとしています。利用可能なソース コードがありますが、かなり大きなアプリケーションです。小さいものやサンプルはありますか?

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

c# - UIAutomation を使用して ControlType.Spinner 要素の値を取得する

ウィンドウとスピナー オブジェクトを取得しました。

次に、スピナー RangeValuePatterm にアクセスしています。

そして、私はシンプルに使用できるはずです:

その値を変更しますが、機能していません。タイプ 'System.ArgumentOutOfRangeException' の例外が発生しています - 値が最大値を超えています。(本当ですが、最大許容値を変更する方法がわかりません...)。

また、単純なので、現在の値を取得する方法もわかりません。

入力された値に関係なく、常に 0 を返します。UIAutomationを介してアクセスする代わりに、キーを送信してスピナーの値を設定することはできますが、スピナーの実際の値を読み取る方法がわからないため、正しいかどうかを確認できません。