C# UIAutomationの使用方法

参照の追加

以下の参照を追加することによりUIAutomstionが使用可能になります。

UIAutomationClient
UIAutomationTypes

ウインドウのハンドルからプログラムのAutomationElementを取得する

Win32 API ウィンドウ関数のFindWindowを使いプログラム名からハンドルを取得し、その取得したハンドルからプログラムのAutomationElementを取得します。

// Win32 API ウィンドウの関数を使用
IntPtr hWnd = FindWindow(null, "Google - Mozilla Firefox");
if (hWnd == IntPtr.Zero) throw new Exception("Error");

AutomationElement element = AutomationElement.FromHandle(hWnd);

AutomationIdからelementを取得する

見つけたいelementのAutomationIdをpanel1、親AutomationElementをelementとする

PropertyCondition condition 
    = new PropertyCondition(AutomationElement.AutomationIdProperty, "panel1");

AutomationElement getElement
    = element.FindFirst(TreeScope.Element | TreeScope.Descendants, condition);

if (getElement== null) throw new Exception("Error");

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください