Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2016.05.01;
Скачать: CL | DM;

Вниз

hook на WM_Destroy   Найти похожие ветки 

 
hook   (2014-10-05 20:41) [0]

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


 
junglecat ©   (2014-10-05 21:41) [1]

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

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


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

Сделал на WH_CBT.


 
stas ©   (2014-10-07 22:21) [3]

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


 
Rouse_ ©   (2014-10-07 22:57) [4]

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


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

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

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


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

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


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

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


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

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


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

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


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

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


 
stas ©   (2014-10-08 09:20) [11]

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



Страницы: 1 вся ветка

Текущий архив: 2016.05.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.005 c
15-1431731742
Германн
2015-05-16 02:15
2016.05.01
Какой бесплатный почтовый сервер можете посоветовать?


15-1439836848
Sha
2015-08-17 21:40
2016.05.01
Загадка-минутка


2-1411730430
Дмитрий
2014-09-26 15:20
2016.05.01
GridKeyUp и InputBox - застреваю при нажатии Ентера


11-1263886607
magi6162
2010-01-19 10:36
2016.05.01
GPS on wince


15-1439415001
Юрий
2015-08-13 00:30
2016.05.01
С днем рождения ! 13 августа 2015 четверг