レビュー
「Spy++」の弟分? UWP/WinUI 3アプリのUI構造を解析・可視化する「UWPSpy」
既存アプリの構造を調査して自分のアプリ開発に役立てよう。いろんなイタズラも可能
2023年11月10日 13:00
Win32アプリの開発に慣れたプログラマーであれば、「Visual Studio」に含まれているユーティリティ「Spy++」のことはご存じだろう。このツールはシステム上のオブジェクト(ウィンドウやコントロールなど)を調査し、その親子関係をツリービューで表示するもので、既存アプリのUI構造を把握したいときに役立つ。しかし、クラシカルなアプリならばともかく、「UWP」や「WinUI 3」といったモダンなUIフレームワークを採用するアプリではあまり役に立たない。
そこで試してほしいのが「UWPSpy」だ。「Spy++」のUWP/WinUI 3版のようなインスペクターツールで、ターゲットアプリのUI構造を可視化できる。
使い方は簡単で、「UWPSpy」を起動すると現れるダイアログで、調査の対象とするアプリとそのUIフレームワークを選択し、[Spy]ボタンを押すだけだ。ターゲットアプリがサポート対象のUIフレームワークを利用していれば、「XAML Diagnostic API」と呼ばれるWindows 10/11のAPIで分析が行われ、その結果がウィンドウで表示される。「XAML Diagnostic API」は「Windows 10 バージョン 1703」で追加された比較的新しいAPIであるため、それ以前のバージョンのWindowsでは動作しない点には注意したい。
解析結果のウィンドウは左右2分割されており、左側がUI構造を可視化したツリービュー、右側がツリービューで選択したUI要素のプロパティとなっている。選択されたUI要素はターゲットアプリ上でも赤くハイライトされるので、どこを選んでいるのかがわかりやすい。さらにプロパティの一部は編集できるようになっており、たとえば「タイトルバーに細工をする」「電卓アプリの結果に数字以外を書き込む」といったことも実現可能だ。
解析結果ウィンドウを閉じると、「UWPSpy」によるインスペクトは非表示となる。完全にインスペクトを停止させたい場合は、ターゲットアプリのプロセスを完全に終了させる必要があるようだ。
ちなみに、本ソフトを開発したのはゲームのようにModでシステムをカスタマイズする「Windhawk」や、アプリUI上のあらゆるテキストをコピーできるようにする「Textify」といったユニークなシステムツールを多数開発しているRamen SoftwareのRaMMicHaeL氏だ。
氏によると、このアプリは「XAML Islands」という新技術で再構築された「Windows 11」でタスクバーを調査するために開発したという。「XAML Diagnostic API」を用いたUI構造の解析は、Windows 11のタスクバーをチャーミングな角丸にできる「RoundedTB」にヒントを得たようだ。ソースコードは「GitHub」で公開されている(GPL-3.0ライセンス)ので、興味のある開発者は覗いてみるとよいだろう。
ソフトウェア情報
- 「UWPSpy」
- 【著作権者】
- Ramen Software
- 【対応OS】
- Windows 10 バージョン 1703
- 【ソフト種別】
- フリーソフト
- 【バージョン】
- 1.1(23/09/25)