Blog. Just Blog

Программы для работы с окнами приложений

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Темная сторона Силы | Автор: ManHunter
Программы для работы с окнами приложений
Программы для работы с окнами приложений

В процессе разработки программ, а также их исследования, очень часто приходится работать с окнами приложений на уровне системы. То есть просматривать или менять стили окон, передавать или отслеживать сообщения и уведомления, обрабатывать другие параметры окон. У меня накопилась небольшая подборка программ, значительно облегчающих выполнение таких задач, и сегодня я подготовил обзор своего инструментария.

Скриншот программы Microsoft Spy++
Скриншот программы Microsoft Spy++

Классика жанра и один из первых инструментов для работы с окнами - Microsoft Spy++ от одноименной корпорации. Является частью Visual Studio, но вполне может запускаться как самостоятельное приложение. Microsoft Spy++ позволяет просматривать список и свойства окон приложений, менять их свойства, а главное - перехватывать сообщения. Несмотря на почтенный возраст, прекрасно работает в современных системах. На всякий случай выложу несколько версий программы.

Microsoft Spy++ 7.10.3077Microsoft Spy++ 7.10.3077

Microsoft.Spy.7.10.3077.zip (282,856 bytes)

Microsoft Spy++ 8.0.50727Microsoft Spy++ 8.0.50727

Microsoft.Spy.8.0.50727.zip (245,156 bytes)

Microsoft Spy++ 10.00.30319Microsoft Spy++ 10.00.30319

Microsoft.Spy.10.00.30319.zip (367,208 bytes)

Microsoft Spy++ 11.00.50727Microsoft Spy++ 11.00.50727

Microsoft.Spy.11.00.50727.zip (798,123 bytes)

Скриншот программы Winspector
Скриншот программы Winspector

Winspector - популярный инструмент среди пользователей AutoHotkey. В удобном интерфейсе отображается список окон и всех их элементов, просмотреть или поменять их свойства и атрибуты, любому окну можно отправить сообщение или установить перехватчик, чтобы отслеживать все сообщения, поступающие окну. Со своими задачами программа справляется неплохо, но периодически возникают косяки при формировании древовидного списка окон. К большому сожалению, разработка Winspector прекращена и офсайт недоступен. Скачать последнюю из выпущенных версий Winspector можно по ссылке ниже.

Winspector 1.0b build 37Winspector 1.0b build 37

Winspector.1.0b.build.37.zip (763,962 bytes)

Скриншот программы Window Detective
Скриншот программы Window Detective

Window Detective, судя по всему, можно называть полноправным преемником Winspector. Очень похожий интерфейс, те же возможности. Но зато нет ошибок своего предшественника и добавлено много полезных функций. Скачать последнюю версию можно с офсайта.

Скриншот программы Aezay Window Hacker
Скриншот программы Aezay Window Hacker

Aezay Window Hacker - современный и очень удобный инструмент для мониторинга окон. Кроме стандартный функций поиска, просмотра и модификации окон, также позволяет отправлять окну любые сообщения с любыми параметрами через SendMessage или PostMessage и просматривать результат отправки. Свежую версию всегда можно скачать с офсайта, но на всякий случай сохраню и у себя.

Aezay Window Hacker 16.06.28Aezay Window Hacker 16.06.28

Aezay.Window.Hacker.16.06.28.zip (254,561 bytes)

Скриншот программы WinCheat
Скриншот программы WinCheat

WinCheat позволяет выбрать любое окно любого работающего приложения и просмотреть очень подробную информацию о нем. В отличие от множества подобных программ, показывает гораздо больше информации, например, параметры шрифта или тип кодировки окна. Также предоставляет очень удобные инструменты, например, редактор стилей, увеличительное стекло и сохранение скриншота окна в файл. Скачать можно с офсайта или по ссылке ниже.

WinCheat 1.7 build 4680WinCheat 1.7 build 4680

WinCheat.1.7.build.4680.zip (367,860 bytes)

Скриншот программы WinSpy++
Скриншот программы WinSpy++

WinSpy++ немного похожа на предыдущую программу (да и на многие другие из этой статьи). Написана на С и распространяется вместе с исходниками, так что разработчики могут посмотреть на использованные там приемы. Офсайт недоступен, программа очень давно не обновлялась. Последнюю версию WinSpy++ можно скачать отсюда.

WinSpy++ 1.7WinSpy++ 1.7

WinSpy++ 1.7.zip (157,023 bytes)

Скриншот программы WinSpy
Скриншот программы WinSpy

WinSpy основан на идеях упомянутого выше WinSpy++, но написан на AutoHotkey. В дополнение к функционалу оригинального WinSpy++ дает возможность вытягивать содержимое списков, работать с деревом системных окон, включать и отключать элементы, а также выполнять другие задачи. Есть версии как для 32-битных, так и для 64-битных систем. Скачать можно с офсайта или по ссылке ниже.

WinSpy 1.0.3WinSpy 1.0.3

WinSpy.1.0.3.zip (1,064,897 bytes)

Скриншот программы WndViewer
Скриншот программы WndViewer

WndViewer - утилита от Twister, позволяющая не только просматривать, изменять атрибуты, перемещать и закрывать окна, но и работать с процессами, в том числе и системными. Это, по задумке автора, что позволяет легче искать и обезвреживать трояны и руткиты. Но из-за использования в программе неподписанного драйвера, WndViewer практически полностью неработоспособен на современных системах. Да и на тестовой машине с Windows XP периодически валит систему в BSOD. Для коллекции сгодится, но особых надежд на WndViewer возлагать не стоит.

WndViewer 1.07WndViewer 1.07

WndViewer.1.07.zip (634,472 bytes)

WndViewer 2.0WndViewer 2.0

WndViewer.2.0.zip (953,433 bytes)

Скриншот программы Window Hack
Скриншот программы Window Hack

Window Hack - утилита, показывающая свойства выбранного окна и позволяющая выполнить с ним основные действия: скрыть, показать, отправить сообщения и т.п. Написана на чистом Ассемблере и распространяется вместе с исходниками, что является ее основной ценностью. По функционалу ничем особенным не отличается.

Window Hack 3.0Window Hack 3.0

Window Hack 3.0.zip (94,263 bytes)

Скриншот программы InqSoft Window Scanner
Скриншот программы InqSoft Window Scanner

InqSoft Window Scanner - вспомогательная утилита от программы InqSoft Sign 0f Misery. Позволяет просматривать и управлять окнами и объектами, связанными с ними: процессами, потоками, меню. Интерфейс почти весь из иконок и картинок, это уже на любителя. Но функционал действительно богатый. К сожалению, проект закрыт, офсайт также недоступен.

InqSoft Window Scanner 1.7InqSoft Window Scanner 1.7

InqSoft.Window.Scanner.1.7.zip (914,834 bytes)

Скриншот программы Property Edit
Скриншот программы Property Edit

Property Edit предназначена в первую очередь для программистов на Delphi. Кроме показа типовых свойств окна, пытается определить компоненты, с помощью которых они сделаны. Также у Property Edit есть несколько интересных функций, например, ведение истории обработанных окон, Color Picker с распознаванием констант цвета, обработка форм VCL. Скачать можно c офсайта или по ссылке ниже.

Property Edit 2.5.0.0Property Edit 2.5.0.0

Property.Edit.2.5.0.0.zip (408,275 bytes)

Скриншот программы WinDowzer
Скриншот программы WinDowzer

WinDowzer - небольшая программа моей разработки. В реальном времени показывает полезную системную информацию о диалоговом окне или элементе интерфейса, которые находятся под курсором мыши: хэндл окна, родительское окно, размер окна, название класса, стили, адреса процедур обработки, пользовательские данные, родительское приложение. Скачать последнюю версию WinDowzer можно здесь.

Скриншот программы WinID
Скриншот программы WinID

WinID - очень мощный инструмент для получения информации об окнах и их элементах, а также об исполняемых файлах, которым эти окна принадлежат. Перечислять все возможности не вижу необходимости, они очень обширны и хорошо описаны в документации. Скачать пробную версию можно и с офсайта, но версия по ссылке ниже не требует регистрации, а также может работать со съемных носителей без всяких лишних предупреждений. В качестве бонуса я скомпилировал файл справки из отдельных файлов.

WinID 3.1WinID 3.1

WinID.3.1.zip (427,634 bytes)

Скриншот программы WinInfo
Скриншот программы WinInfo

WinInfo от известного реверсера deroko / ARTeam показывает краткую информацию об окне под курсором. Функционал, мягко говоря, небогатый, но зато в архиве есть исходники с очень неплохим примером обработчика мыши через инжект DLL во все процессы. Если перед вами стоит подобная задача, то можете с этими исходниками ознакомиться.

WinInfoWinInfo

WinInfo.zip (54,642 bytes)

Скриншот программы AutoIt Window Info
Скриншот программы AutoIt Window Info

AutoIt Window Info - вспомогательная утилита из комплекта AutoIt, предназначенная, в первую очередь, для работы с AutoIt, но вполне достойная как самостоятельное приложение. Показывает подробную информацию о выбранном окне или элементе управления. AutoIt Window Info есть в дистрибутиве AutoIt, отдельно можно скачать по ссылке ниже.

AutoIt Window InfoAutoIt Window Info

AutoIt.Window.Info.zip (291,371 bytes)

Скриншот программы Control Viewer
Скриншот программы Control Viewer

Control Viewer - альтернатива AutoIt Window Info, написанная на скриптах AutoIt. Все функции также предназначены для облегчения работы с AutoIt. Особую ценность представляют исходники, которые есть в комплекте.

Control Viewer 1.1 + исходникиControl Viewer 1.1 + исходники

Control.Viewer.1.1.zip (1,899,534 bytes)

Скриншот программы SendMessage
Скриншот программы SendMessage

SendMessage - небольшая утилита для отправки сообщений с заданными параметрами в выбранное окно. Не самый великий шедевр софтостроения, да и функционал не столь обширен, как у конкурентов, зато открыты исходники. Скачать можно с офсайта или по ссылке ниже.

SendMessage 1.1.2.44 + исходникиSendMessage 1.1.2.44 + исходники

SendMessage.1.1.2.44.zip (139,560 bytes)

Скриншот программы Cmdow
Скриншот программы Cmdow

Cmdow - единственная из известных мне консольных утилит для управления окнами приложений. С ее помощью можно искать окна, закрывать их, минимизировать или разворачивать, менять заголовки, передвигать и выполнять еще немало других задач. Очень рекомендую посмотреть примеры использования Cmdow на офсайте. Ценность также представляют исходники, которые лежат в открытом доступе. Из-за особенностей работы некоторые антивирусы опознают Cmdow как опасное приложение, но это не так. Никакого вредоносного кода там нет.

Cmdow 1.4.8Cmdow 1.4.8

Cmdow.1.4.8.zip (301,954 bytes)

Скриншот программы Acorns Hawkeye
Скриншот программы Acorns Hawkeye

Acorns Hawkeye - пожалуй, единственная утилита для анализа окон, созданных компонентами .NET Framework. Вышеперечисленные инструменты не могут работать со свойствами дочерних элементов таких окон, так что Acorns Hawkeye вам пригодится. Скачать можно с офсайта или по ссылке ниже.

Acorns Hawkeye 125.N2Acorns Hawkeye 125.N2

Acorns.Hawkeye.125.N2.zip (1,257,881 bytes)

В этой статье я сознательно не стал описывать огромное количество однотипных утилит, вся работа которых сводится к показу списка окон с минимальными функциями типа "скрыть/показать" или "активировать/отключить". Я считаю, что для этого вполне достаточно представленных здесь инструментов.

Поделиться ссылкой ВКонтакте
Просмотров: 58683 | Комментариев: 39

Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
АндрейК (04.12.2022 в 23:00):
Андрей, GammaRay заморочена на версию QT (и возможно компилятору и т.п.), возможно поэтому в виде бинарников отсутствует.
Анна Балакирская (05.07.2022 в 22:10):
Цитатане позволяют зафиксировать результат поиска - когда надо подсмотреть класс или родителя, то приходится его печатать, а хочется просто скопировать в буфер


Для этого есть маленькая программка, под названием Textify. Очень удобно копировать текст из форм, без выделения. Немного не по теме, однако выручает при работе с такими утилитами.
Aleksandr (05.05.2021 в 12:37):
В Win 8.1 большая часть программ работает.
WinSpy++ 1.7 успешно решил мою задачу. Запускать от администратора.
Спасибо автору!
ManHunter (17.03.2021 в 14:31):
Kemper, да, значительно лучше оригинального WinSpy++. Но он был написан на C, а тут исходник на AHK. Добавил, спасибо!
Kemper (17.03.2021 в 07:10):
наткнулся на winSpy посвежее - похоже что на базе исходников WinSpy++ https://sourceforge.net/projects/winspyex/
Elendiar (15.02.2021 в 20:23):
Спасибо, как раз та информацию которую искал. (использую с ahk)
makkud (22.05.2020 в 12:03):
Спасибо за статью! Самый полный обзор во всём Интернете!
Павел (06.08.2019 в 09:38):
Очень полезная статья.
Жалко, что для Mac OS нет подобных инструментов. Кроме selfSpy на питоне ничего не нашел, что можно было посмотреть с источниками.
Андрей (07.04.2019 в 12:33):
Здравствуйте!
А есть ли подобные утилиты для исследования окон приложений написанных с использованием Qt, wxWidget и других подобных виджетов? Ни одна из описанных здесь программ ничего не видит кроме главного окна. Долгое время ищу, но все ссылки ведут на разработку GammaRay, которая распространяется только в исходниках и нет возможности её посмотреть. Причем такие инструменты есть для Unix-подобных систем, например Qt-Inspector, но для Windows - голяк. Может кому-то попадалось нечто или хотя-бы имеет возможность скомпилировать эту GammaRay.
Vadim (19.04.2018 в 07:41):
cmdow не единственная консольная тулза.

NirCmd v2.81
Copyright (c) 2003 - 2016 Nir Sofer

http://www.nirsoft.net/utils/n...2.html#using

введите в поиске слово - handle

ещё у меня были в закромах маленькие утилиты коммандной строки, которые с окнами как то взаимодействовали.    если нужно очень будет, то могу выложить куда-нить.   стучитесь:  mitwadspamoТЯФТЯФТЯФgmail.com
BarMentaLisk (29.10.2017 в 13:30):
Отличный обзор, дядька! Единственное, верстка немного сбивает с толку: почти везде глаз ловит название тулзы, абзац с её описанием, потом смотришь на скриншот, и ... бац! скриншот-то уже от следующей тулзы, а от этой почему-то выше.
Сразу подумал, что это для мобильной версии замут, но в мобильной — еще больше бросается это в глаза.
Сорян за критику, я тебя всё равно очень уважаю, особенно за ассемблер!
ManHunter (28.04.2017 в 12:31):
Какое отношение перехватчик API имеет к окнам? Вот когда будет статья по мониторам API, тогда я обязательно эту программу упомяну. Но не здесь.
Алексей (28.04.2017 в 12:12):
API Monitor от Rohitab  // http://www.rohitab.com/apimonitor
также достоин добавления в список.
ManHunter (16.01.2017 в 10:36):
Насколько я знаю, система не предоставляет вообще никаких данных об источнике сообщения. Да и функций отправки сообщений далеко не две:
https://msdn.microsoft.com/en-...=vs.85).aspx
https://msdn.microsoft.com/en-...=vs.85).aspx
pawel97 (15.01.2017 в 22:40):
А есть такие звери, которые показывают, какой процесс посылает окну указанное сообщение? В одной проге проверка возникает при отправке окну сообщения с определённым wParam, причём в самом exe не нашлось нужного вызова SendMessage или PostMessage. В оле ставить бряки на эти функции, понятное дело, не вариант - не успеешь нажать f9, как бряк пять раз уже сработает.
ManHunter (14.12.2016 в 16:15):
Добавил программу SendMessage.
ManHunter (01.11.2016 в 12:31):
Добавил InqSoft Window Scanner и Acorns Hawkeye
Kemper (24.10.2016 в 22:45):
пять копеек в копилку )
InqSoft Window Scanner
http://soft.sibnet.ru/soft/219...scanner-1-7/
ManHunter (10.10.2016 в 11:16):
Добавлены WinID, AutoIt Window Info и Control Viewer.
ManHunter (12.07.2016 в 08:01):
Уже все хорошо :)
Vladimir (12.07.2016 в 00:12):
У вас три буквы М в названии статьи. Или не кажется?
DRON (07.07.2016 в 21:25):
WinSpy++ вполне себе доступен по ссылке:
http://www.catch22.net/software/winspy-17
Программа действительно давно не обновляется (2012 год), но ведь половина перечисленных утилит ещё старее (есть и 2005 года).
kero (04.07.2016 в 19:11):
> к ним бы документацию, а то многие инструменты похожи на черную магию :)

Как так - а исходник к каждой, - что может быть документальнее ? :)
А хелп в архиве (или встроенный через сисменю) у тех, кто не слишком tiny ?
Ну, а некоторые - всего-навсего демонстраторы какой-либо ошибки MS/MSDN.
Впрочем, все они - с geocities.com, прикрытого еще несколько виндов тому назад, и с тех пор подправлены и подразвиты. И если что-то действительно заинтересовало - черкни на @yahoo.com (слева вверху странички), отвечу незамедлительно.
P.S. И спасибо за наводку на Сокольники, порадую человечка 6 лет :)
ManHunter (04.07.2016 в 13:35):
kero, к ним бы документацию, а то многие инструменты похожи на черную магию :)
kero (04.07.2016 в 11:31):
Привет! Есть старая страничка с моими утилитками, которые вроде вполне в русле: все они для изучения и работы с окнами, все с нестандартным функционалом, все на masm32 с исходниками, и некоторыми пользуюсь до сих пор (htspy, extraspy, windrag). Взгляни, может что-то заинтересует собрата-ассемблерщика :) - http://www.geocities.ws/xmemor...tinyasm.html .

толькот что проверил - ёмоё, этот веб-архив позволяет войти только на главную страничку - http://www.geocities.ws/xmemor , и только потом перейти на "TINY APPS + SOURCES(masm32)" ( http://www.geocities.ws/xmemor...tinyasm.html )...
Михаил (04.07.2016 в 09:16):
Спасибо за статью!
Как бы попроще закрывать окно с сообщением "Не установлен объект Capicom"? http://hkar.ru/JxTm
speedboy (04.07.2016 в 04:02):
good
ManHunter (03.07.2016 в 20:02):
Похоже, что Пинцет скопирован с WindowMan :)

Цитатакак узнать instance у контрола ?

Ни разу такой задачи не возникало, потому и в программе нет. Ну, будет о чем подумать в следующей версии.
wetal (03.07.2016 в 19:01):
Есть ещё одна русская программа Пинцет.
http://purebasic.info/phpBB3ex...e.php?id=643
очень маленькая по размеру, умеет так же показывать информацию об окнах и ещё делать их прозрачными, всегда сверху, разблокировать неактивные окна, разблокировать неактивные пункты меню и т.д и т.п.
Может Вам понравится.
addhaloka (03.07.2016 в 19:00):
Вот ещё, может пойдёт в копилку - WindowMan by yoda/f2f: https://www.upload.ee/files/59.../WM.zip.html
Андрей (03.07.2016 в 17:00):
Шутка.
Скажите пожалуйста как узнать instance у контрола ?

http://s1.bild.me/bilder/24041..._control.png
http://s1.bild.me/bilder/24041...control2.png
ManHunter (03.07.2016 в 15:45):
Цитатапозволяет скопировать имя класса - такого функционала больше нигде не находил

Это шутка такая? ВСЕ без исключения программы из статьи позволяют скопировать название класса окна.
Андрей (03.07.2016 в 15:36):
Window Detective неудобен при вылавливании событий и нестабилен-виснет (сейчас проверил). Winspector отличался стабильностью.

Зря AutoIt 3 (точнее Au3Info) "забраковали" - позволяет скопировать имя класса - такого функционала больше нигде не находил (может быть плохо искал).
ManHunter (03.07.2016 в 14:35):
Добавил Property Edit 2.5.0.0
Rustamer (03.07.2016 в 14:24):
Можно упомянуть чисто для коллекции утили WinLister и WinExplorer  от товарища Нира Софера
Еще есть весьма полезная дотнетовая утиль Hawkeye - The .Net Runtime Object Editor https://hawkeye.codeplex.com/

Из того, что еще бывает очень полезно, так это Textify от нашего Rammichael-а. Хотя в тему статьи это может и не особо вписывается
brute (03.07.2016 в 12:33):
ManHunter (03.07.2016 в 12:00):
Этих программ достаточно. AutoIt к теме относится чуть меньше, чем никак. showin ничего уникального не делает. PropEdit вообще хз что такое, нашел что-то с таким именем под MacOS. Я могу привести еще десяток-полтора подобных утилит, но ничего нового в них не будет. Цель статьи не состоит в том, чтобы выгрести из интернетов все, что хоть на пол-шишечки касается окон. Я хотел собрать только самое удобное и полезное, или, в качестве исключения, утилиты с исходниками.

Цитатахочется просто скопировать в буфер

Тут почти все программы или выводят данные в EDIT, или есть кнопочка копирования.
brute (03.07.2016 в 11:46):
Можно ещё добавить: AutoIt 3, showin, PropEdit.
brute (03.07.2016 в 11:35):
Спасибо за статью! Главный недостаток (для меня) многих подобных прог в том, что они не позволяют зафиксировать результат поиска - когда надо подсмотреть класс или родителя, то приходится его печатать, а хочется просто скопировать в буфер.

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.07 сек. / MySQL: 2 (0.0054 сек.) / Память: 4.5 Mb
Наверх