![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Новые окна [D6, D7, Win95/98, Win2k, WinXP]
Lin7 © (2004-09-28 16:08:00)Мастера, подскажите как можно обнаружить появление новых окон, имеющих область заголовка? Как при запуске новых приложений, так и при работе уже запущенных. Идея вешать перебор всех окон на таймер меня не прельщает... Цивилизованей как-то можно?
Игорь Шевченко (2004-09-29 10:06:00) [1]
> т.е. я буду знать о появлении новых окон.
WH_SHELL ? WH_CBT ?
bar (2004-09-29 08:42:00) [2]>>Lin7
Вот линки на статейки о которых я говорил выше.
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=548
http://delphi84.valuehost.ru/articles/hooks/index.html
http://www.sources.ru/delphi/dll/hooks_aspects.shtml
статьи похожи друг на друга.
это пооригинальней
http://www.firststeps.ru/mfc/winapi/hook/hook1.html
По-моему можно ставить хук на WH_SHELL см.
http://www.firststeps.ru/mfc/winapi/hook/r.php?36
Удачи.
Lin7 (2004-09-28 18:11:00) [3]Я запнулся на идее.
В двух словах: нужно с помощью функции SetWindowsHookEx поставить хук, например WH_CALLWNDPROC, на все процессы. При этом винда сама будет ставить этот хук на вновь запускаемые процессы. При создании новых окон винда будет им посылать различные сообщения (WM_CREATE, WM_NCPAINT и др.), т.е. я буду знать о появлении новых окон. У новых окон надо проверить стиль WS_CAPTION (мне по крайней мере), чтобы определить есть ли у окна заголовок. Хендл новых окон берётся в хуке из структуры CWPSTRUCT.
Реализовывать ещё не пробывал, если есть замечания/пожелания/вопросы - тема вновь открыта.
И снова здрасте :)
vecna (2004-09-28 17:45:00) [4]2Lin7, тема может и закрыта, но нам-то скажи, вдруг у кого аналогичная проблема
bar (2004-09-28 16:46:00) [5]>>Торможу к концу рабочего дня :)
Аналогично но у меня с сервисами тормоза :)
Lin7 (2004-09-28 16:38:00) [6]
> bar (28.09.04 16:34) [1]
Спасибо. Уже сообразил. Торможу к концу рабочего дня :)
Тема закрыта.
bar (2004-09-28 16:34:00) [7]Поищи о SetWindowsHookEx и вообще о хуках.
Был линк на статейку по этому поводу(может на delphiworld ), но сейчас искать некогда. Рабочий день заканчивается. Но инфа об этом в инете есть.