■ UI自動化について考える
- ウィンドウハンドルについて
- アプリケーションのUIを分析する(Inspectツール) ←今ここ
- UIAutomationでUI操作してみる
- UIAutomationをWinActorに組み込む
アプリケーションウィンドウを識別する為にはウィンドウハンドルという管理番号を使っていることは分かった。
さて、UI自動化となると、そのウィンドウの中のボタンだとか入力欄を操作したい訳ですよね。
操作する為には、操作する対象のUIがどの様にしてコンピュータに認識されているかを調べなければならない訳です。
1.Windows SDKをインストールする
Windowsには、Windows SDKという名前で公開されている無償の開発者用の機能のパッケージライブラリを使うことができます。
Visual Studioインストール済みの端末に関しては、わざわざ別で入手しなくても同梱されてインストールされているそうです。
2.Inspectツールを起動してみる
分かりにくいんですが、Windows SDKをインストールしてWindows Kitsのフォルダを開くと私の環境では以下にありました。(端末バージョンによってパスは変わるみたいです。。。)
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x86\inspect.exe"
これを起動するとこんなウィンドウが起動します。
このマウスカーソルのボタンがオンにして他のアプリケーションにオンマウスすると、そのアプリケーションのUIがWindowsシステム上でどのように認識されているのか、パラメータ情報が表示される訳ですね。
今回、作成するUIAutomation用ツールでは上の方に出てるNameまたはAutomationIDってのをコントロールを識別する情報として使っていきます。
3.NameもAutomationIDも両方とも「""」空白になっている場合
たまに、NameもAutomationIDも空白になっているコントロールがあります。
こーゆーときは、その手前のラベルにターゲットしてプロパティを下のほうまで見ると・・・
Nextという属性の中にその隣のコントロールが補足できていることがわかるかと思います。
どうしてもNameとAutomationIDで捕捉できないコントロールは、このNextとPreviosをオプションとして使って相対的にコントロールを捕まえていきます。