|
.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ファイルの内容は変化しない)。![]()
| カテゴリ:開発環境&ツール 処理対象:ツール |
|
||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




