Основная цель Spy++ - регистрировать сообщения, передаваемые в Windows.

Части адаптировано из Pat Brenner"s Spy++ Internals размещения на Визуальный Блог ++ Team C, и документации MSDN по Spy ++.

Spy++ (также известный как SpyXX, так как основной двоичный файл - SpyXX.EXE) показывает родительскую иерархию всех Windows в вашей системе.
Для каждого окна вы можете видеть обрабатываемые им сообщения Windows и связанные с ним свойства Windows.

Spy ++ поставляется с розничными (не экспресс!) Версиями Visual Studio.
Это встроенная утилита Win32, которая также работает в x64 Windows.

Spy ++ обычно устанавливается в %ProgramFiles%Microsoft Visual Studio ##.#\Common#\Tools\(где # зависит от вашей версии Visual Studio). В системах x64 будет использоваться%ProgramFiles(x86)% в качестве базы.

Spy ++ основан на этих файлах:

  • spyxx.exe - панель инструментов Microsoft Spy++
  • spyxxhk.dll - ловушка Microsoft Spy++
  • spyxxui.dll - Ресурсы Microsoft Spy++
  • spyxx.chm - файл справки для spyxx.exe

Обратите внимание, что в различных системах номера версий двоичной библиотеки DLL и номера текстовой версии не всегда совпадают (в Visual Studio 2010 двоичные версии указывают 10, а текстовые версии в DLL указывают 9).

Пэт Бреннер написал большую часть Spy ++. Хотя он не является первоначальным автором, он владел им с 1993 по 2003 год и владеет им с 2007 года.

Из сообщения в блоге Пэта:

Spy ++ создан, чтобы быть наблюдателем (а не модификатором) системы вокруг него. [...] основная цель Spy ++ - регистрировать сообщения, которые передаются в Windows. Spy++ выполняет это с помощью трех глобальных перехватчиков сообщений: перехватчика WH_GETMESSAGE, который перехватывает сообщение, отправленное в окно (через PostMessage); ловушка WH_CALLWNDPROC, которая перехватывает сообщение, отправленное окну (через SendMessage); и ловушка WH_CALLWNDPROCRET, которая перехватывает возврат сообщения, отправленного в окно (через SendMessage).

- Джерун