Home > C# > DevTool > Spyツール > SPY++

Spy++を使用する

新規作成日 2023-07-15
最終更新日

Spy++は、Microsoftが提供するツールであり、Windowsアプリケーションが、Windows OSが提供するウインドウハンドル(HWND)を調べるために利用されます。

ウインドウハンドル(HWND)を使用することで、既存アプリケーションを変更することなく、アプリケーション上のフォームに表示されるデータを取り込んだり、書き込んだりすることができます。

ウインドウハンドル(HWND)を使用している開発プラットフォーム

Windows上で表示されるウィンドウやコントロールの多くは、ウインドウハンドル(HWND)の観点から構築されています。

  • 生のWin32アプリケーション
  • MFCに基づいたアプリケーション
  • Windows Formに基づいたアプリケーション
  • ActiveXに基づいたアプリケーション
ちなみに

WPFは、HWNDに基づいていません。このことから、WPF以降に登場したUWPなどの開発プラットフォームでは、ウインドウハンドル(HWND)が取得できない可能性があります。

Spy++ で実行できる作業

SPY++では、以下のことが実行できます。

  • プロセス、 スレッド、 ウィンドウを含むシステム・オブジェクト間の関係のグラフィカルなツリーを表示する
  • 指定された ウィンドウ、 スレッド、 プロセス、メッセージを検索する
  • 選択された ウィンドウ、 スレッド、 プロセス、メッセージのプロパティを表示する
  • ビューでウィンドウ、スレッド、プロセス、またはメッセージを直接選択する
  • ファインダー ツール を使用して、マウス ポインターでウィンドウを選択する
  • 複雑なメッセージ ログ選択パラメーターを使用して、メッセージ オプションを設定する

Spy++ に似たユーティリティ

  • PView

    プロセスとスレッドについての詳細が表示される

  • DDESPY.EXE

    ダイナミック データ エクスチェンジ (DDE) のメッセージを監視できる

Spy++の種類

Spy++は、Visual Studioをインストールする際のインストールオプションにより、一緒にインストールされ、2種類存在します。

  • Spy++ (32 bit)(spyxx.exe)

    32 bit プロセスで実行しているウィンドウに送信されるメッセージを表示する。

    たとえば、Visual Studio は 32 ビット プロセスで実行されるため、Spy++ を使用して、 ソリューション エクスプローラーに送信されるメッセージを表示できます。

    Visual Studio におけるほとんどのビルドの既定の構成は 32 ビット プロセスで実行されるため、Visual Studio の [ツール] メニューで使用できる Spy++ はこのバージョンです。

  • Spy++ (64 bit) (spyxx_amd64.exe)

    Spy++ (64 bit) (spyxx_amd64.exe)

    64 bit プロセスで実行しているウィンドウに送信されるメッセージを表示する。

    たとえば、64 ビットのオペレーティング システムでは、メモ帳は 64 ビット プロセスで実行されます。 したがって、Spy++ (64 ビット) を使用して、メモ帳に送信されるメッセージを表示できます。

    通常、Spy++ (64 ビット) は、..\\Common7\Tools\spyxx_amd64.exe にあります。

どちらのバージョンの Spy++ も、コマンドラインから直接実行できます。

Spy++ (64 ビット) のファイル名には "amd" が含まれますが、すべての x64 Windows オペレーティング システムで動作します。

参考

Spy++を実行する

Spy++ は、Visual Studio またはコマンド プロンプトから起動できます。

Spy++ を起動すると、コンピューターを変更をするためのアクセス許可を求めるメッセージが表示される場合は、 [はい] を選択します。

Spy++ のインスタンスは 1 つだけ実行できます。

SPY++を使用するための必須コンポーネント

Visual Studioで、[ツール] > [ツールと機能を取得]を選択します。

Visual Studioで、[ツール] > [ツールと機能を取得]を選択します。

[個別のコンポーネント]タブを選択し、下にスクロールし、[ディバッグとテスト]の項目から[C++のプロファイル ツール]にチェックを入れます。

[個別のコンポーネント]タブを選択し、下にスクロールし、[ディバッグとテスト]の項目から[C++のプロファイル ツール]にチェックを入れます。

右側の[インストールの詳細]枠から、[C++コア機能]にチェックが入っていることを確認します。チェックが入っていなかったらチェックを入れます。

右側の[インストールの詳細]枠から、[C++コア機能]にチェックが入っていることを確認します。チェックが入っていなかったらチェックを入れます。

[ダウンロードしながらインストールする]をクリックします。

[ダウンロードしながらインストールする]をクリックします。

これで、SPY++を使用する準備が出来ました。

Visual StudioからSPY++を起動する

Visual Studioを再起動し、[ツール]メニューに[SPY++]の項目が現れます。

Visual Studioを再起動し、[ツール]メニューに[SPY++]の項目が現れます。

Spy++ は独立して実行されるため、起動した後で Visual Studio を閉じることができます。

コマンドプロンプトから、SPY++を起動する

  1. コマンド プロンプト ウィンドウで、ディレクトリを spyxx.exe が含まれるフォルダーに変更します。 通常、このフォルダーへのパスは ..\\Common7\Tools\ です。
  2. 「spyxx.exe」と入力します。64 bit バージョンの場合は、「spyxx_amd64.exe」と入力します。
参考

ウインドウハンドル(HWND)を使用して既存のアプリケーションの情報を活用するプログラムを作成する

APIなど外部のプログラムと連携する仕組みが存在しないアプリケーションと連携するアプリケーションを作成する場合、ウインドウハンドル(HWND)を使用すると、連携先のアプリケーションを変更する必要がないので、開発の負荷をかなり減らすことができます。

このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」