3

C# UIAutomation ライブラリを使用してテスト ツール アプリケーションを作成しようとしています。コード例は次のとおりです。

Automation.AddAutomationFocusChangedEventHandler(
   new AutomationFocusChangedEventHandler(OnAutomationFocusChanged));

フォーカスが変更されたことを検出したら、イベントのタイプ (左/右クリックまたはキーボードが押された) を取得する必要があります。メソッド OnAutomationFocusChanged() でこれらの値を見つけるにはどうすればよいですか?

4

2 に答える 2

2

いいえ、これは UI 自動化では不可能です。マウスやキーボード イベントなどの低レベルの対話は、API の一部ではありません。InvokeAPI は、InvokePatternやなどの高レベルの対話を中心に設計されSelectていSelectionItemPatternます。この種の操作にはイベントがありますが、キーの押下やマウスの移動/クリック/ドラッグを検出するイベントはありません。

これらのイベントを取得する唯一の方法は、Windows API のグローバル フックを使用することです。このプロジェクトは、開始するのに適した場所のようです。

于 2013-04-10T07:42:00.367 に答える