.NET TIPS

実行中の.NETアプリケーションのオブジェクト構造などを調査/操作するには?

デジタルアドバンテージ 一色 政彦
2007/06/14

 Visual Studio .NET 2002/2003やVisual Studio 2005(以降、VS 2005)には、Windowsアプリケーションのウィンドウの親子関係やウィンドウ・ハンドルなどを調べるために「Spy++」というツールが付属している(インストール時のオプション設定の内容によってはインストールされない場合もある)。

 例えば、VS 2005では、[スタート]メニューから[すべてのプログラム]−[Microsoft Visual Studio 2005]−[Visual Studio Tools]−[Spy++]を選択するとこれが起動する。次の画面は実際にSpy++を起動したところだ。

Spy++の実行例
Internet Explorerを起動した状態でSpy++を立ち上げると、このようにInternet Explorerのウィンドウ構造を調べられる。

 この画面の例ではInternet Explorerを起動した状態でSpy++を起動しているが、Spy++ではこのようにして実行中のWindowsアプリケーションの構造をWin32レベルで調べられる。

 Spy++は.NETにより作成したWindowsアプリケーション(以下、.NET Winアプリ)に対してももちろん有効だが、このようなWin32レベルでのネイティブなウィンドウ構造とは別に、.NET Winアプリには、フォーム(Formクラス)や各コントロール(Controlクラスの各種派生クラス)などのオブジェクトで構成される、マネージ・コード・レベルでのオブジェクト構造(フォームやコントロールの親子関係)が存在する。そういった.NET Winアプリのオブジェクト構造やその各プロパティ内容を調べるためのツールが「Managed Spy」だ。

 ただしこのManaged SpyはVisual Studioの付属ツールではなく、MSDN Magazineの記事からダウンロードして利用するツールである。実際にダウンロードするには、次の記事の上部にある「Get the sample code for this article.」というリンクをクリックして、サンプル・コードごとダウンロードしてほしい。

 サンプル・コードは圧縮ファイル(ManagedSpy.exe)となっているので、これを実行して任意の場所に解凍すると、解凍されたフォルダ内に「ManagedSpy.exe」があるはずだ。これがManaged Spyの本体なので、ダブルクリックするなどして実行してほしい。

 次の画面は実際にManaged Spyを実行したところである。

Managed Spyの実行例
時計アプリケーション「DigitalClock」を起動した状態でManaged Spyを立ち上げると、このように.NETで作成されたWindowsアプリケーションのオブジェクト構造や各プロパティの内容を調べられる。また、[Properties]ウィンドウでプロパティの値を変更すれば、実行中の.NETアプリケーションに即座に反映される。

 この画面の例では、.NETで作成した時計アプリケーション「DigitalClock」をあらかじめ実行しておき、その状態でManaged Spyを実行している。するとこのように、実行中の.NET Winアプリ(この例では「DigitalClock」)が自動認識され、Managed Spyの左のツール表示部分に現れる。

 そのアプリケーション項目の配下には、内部のフォームや、さらにその内部のコントロールなどの項目が表示される。いずれかの項目を選ぶと、右側の[Properties]ウィンドウにその項目に関するプロパティ内容が表示される。このプロパティ内容を変更すると、実行中のアプリケーションに即座に反映されるので、ちょっとプロパティを変更して動作を検証したいケースなどで有用だろう(このプロパティ変更では、物理的な.EXE/.DLLファイルの内容は変化しない)。End of Article

カテゴリ:開発環境&ツール 処理対象:ツール

この記事と関連性の高い別の.NET TIPS
VS 2005やIISを使用せずにWebアプリケーションを実行するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

TechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH