RPAなど画面操作を行うツールを使っていて特定のUI要素の情報がうまく取れない場合のデバッグ方法として、Windows SDKに付属のInspect.exeツールを使うと便利です。
Windows SDKはVisual Studioをインストールしていれば標準でインストールされるので追加のインストールは不要ですが、そうでない場合は無料でダウンロードしてインストールしてくることができます。
Inspect.exeの存在チェック
最初に、ローカルフォルダの以下の場所を確認して、inspect.exeが既にインストールされていないかをチェックしましょう。
C:\Program Files (x86)\Windows Kits\(メジャーバージョン)\bin\(バージョン/ビルド番号)\x86
例:
C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86
Windows SDKのダウンロード
以下の場所から最新のバージョンの「SDKのインストール」リンクをクリックします。2020年9月時点での最新バージョンは「Windows 10 SDK バージョン 2004 (10.0.19041.0)」です。
すると、ダウンロードフォルダにwinsdksetup.exe
というファイルがダウンロードされます。
インストール開始
winsdksetup.exe
をダブルクリックすると、インストーラが起動します。
- インストールフォルダを聞いてきますので、そのまま[Next]ボタンをクリックします。
- 次の画面でも「Next」ボタンをクリックします。
- ライセンス契約を読んで[Accept]ボタンをクリックします。
- 機能選択の画面になります。このまま「Install」ボタンをクリックしてしまっても問題ないのですが、そうすると全部で2.6GBのディスク容量を食うので、必要なものだけ選択することにします。ここでは、一旦すべてのチェックボックスを外します。
- 「Windows SDK for UWP Managed Apps」にチェックを入れます。この時同時に「Windows SDK Signing Tools for Desktop Apps」にもチェックが入ります。必要なディスク容量は700MB前後となります。
- 必要なコンポーネントのダウンロードとインストールが始まるので、しばらく待ちます。
- 終了したら「Close」ボタンをクリックします。
※ちなみに、Inspect.exeの実行可能ファイルのサイズ自体は210kBであり、一度Windows SDKをインストールして、このファイルだけをどこかにコピーした後Windows SDKをアンインストールしても、Inspect.exeだけで単体で動作します。
Inspect.exeの起動
早速、C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86
(もしくは類似のビルド番号のフォルダ)を開くと、inspect.exeが見つかります。ちなみに、ビルド番号のフォルダーは複数存在することがあり、それぞれにinspect.exeが入っていることがあります。どれでもかまいません。
inspect.exeを起動すると以下のような画面が起動します。
マウスカーソルをあわせると、UI要素のところに黄色い強調表示が表示され、UI要素のツリー構造とそのプロパティが表示されます。APIはMSAAとUIAutomationから選ぶことができるので、デバッグしたい方を選択します。