Форум: "Начинающим";
Текущий архив: 2016.05.01;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.002 c