ウィンドウメッセージを覗く (Spy++)

Spy++は、「特定のウィンドウに対して、どのようなメッセージが、どのような順番でWindowsから送信されているか」を調査する際に大変便利なユーティリティ。

2022-12-06-2312.png

インストール

  • Visual Studio を起動し、[ツール] - [ツールと機能を取得] をクリックする
  • [個別のコンポーネント] タブを開き、[デバッグとテスト] セクションの [C++のプロファイルツール] を選択しインストールする
  • インストールが完了したら Visual Studio の [ツール] - [Spy++] から起動できる

メッセージビュー

  • 2列目:ウィンドウハンドル
  • 3列目:メッセージコード(P, S, s, R
  • デコードされたメッセージパラメーターと戻り値は 4列目以降に表示される

メッセージコード

コード 意味
P PostMeesage 関数でメッセージがキューにポストされた(posted)。メッセージの最終的な処理に関する情報はない
S SendMessage 関数でメッセージが送信された(sent)。これは、受信側がメッセージを処理して返すまで、送信側は再度制御できるようにならないことを意味する。 このため、受信側は戻り値を送信側に渡すことができる
s メッセージは送信されたが、セキュリティにより戻り値にアクセスできない
R 各 'S' 行には、対応する 'R' (リターン) 行がある。これは、メッセージの戻り値の一覧を表示する。メッセージの呼び出しが入れ子になっている場合がある。これは、あるメッセージハンドラーが別のメッセージを送信することを意味する

参考