Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

hook на WM_Destroy


hook ©   (2014-10-05 20:41:00) 

Добрый вечер!
Нужно запретить закрываться определенному окну (чужого приложения), написал хук.
Сообщение получаю, только вот теперь не могу понять как запретить это сообщение.
хук на WH_SHELL.
Но как я понял в WH_SHELL нельзя изменять сообщения. Какую процедуру можно использовать вместо WH_SHELL для этой цели?


stas   (2014-10-08 09:20:00) [1]

>Rouse_ ©   (08.10.14 00:33) [9]
Спасибо! смотрю!


Rouse_   (2014-10-08 00:36:00) [2]

Ну и тут еще нюансы: http://alexander-bagel.blogspot.ru/2013/05/intercept2.html


Rouse_   (2014-10-08 00:33:00) [3]

Лоадер стартует твой софт и при старте подменяет вызов апишки ShowWindow на свой обработчик, в котором ты сам можешь принимать решение о поведении данной функции.
Общее описание методиги можешь взять тут: http://alexander-bagel.blogspot.ru/2013/01/intercept.html


stas   (2014-10-08 00:18:00) [4]

А можно подробнее о лоадере, пожалуйста, а то не понял )


Rouse_   (2014-10-07 23:59:00) [5]

Ба, да у тебя делов то на три минуты. Раз оно само сворачиваниется, так и напиши лоадер, который перехватит ShowWindow и не будет его вызывать при конманде сворачивания.


stas   (2014-10-07 23:42:00) [6]

есть приложение, которое может сворачиваться в трей. Нужно ему запретить сворачиваться. Сворачивается либо по кнопке "свернуть" (это заблокировал WH_CBT) либо автоматически исходя из условий работы приложения. Автоматически продолжает сворачиваться, проанализировать какими сообщениями нет возможности т.к. свернуться оно может 1 раз в сутки. Я предполагаю это wm_showwindow. Для примера сделал приложение которое шлет команду ShowWindow(handle,sw_hide) и пытаюсь отловить это сообщение и заблокировать.


Rouse_   (2014-10-07 23:00:00) [7]

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

> junglecat ©   (05.10.14 21:41) [1]
> с какой целью?


Rouse_   (2014-10-07 22:57:00) [8]

Это нотификационное сообщение, а не управляющее.
Смысла в его блокировке по сути нет.


stas   (2014-10-07 22:21:00) [9]

Еще бы теперь WM_ShowWindow заблокировать WH_CBT его не ловит, WH_GetMessage тоже... Ловит WH_CALLWNDPROC, но в ней нельзя модифицировать сообщения.


stas   (2014-10-05 22:14:00) [10]

Сделал на WH_CBT.


junglecat   (2014-10-05 21:41:00) [11]

> Нужно запретить закрываться определенному окну

с какой целью?


Наверх

Титульная страница Поиск, карта сайта Написать письмо