Текущий архив: 2003.01.27;
Скачать: CL | DM;
Вниз
Hook Найти похожие ветки
← →
Kirill45 (2002-12-13 01:49) [0]Доброго времени суток мастера!
Вот столкнулся с проблемой - когда надо перехватить
закрытие окна другой программы - подскажите пожалуйста
как это, хотя бы в принципе делается - надо Hook ставить
или можно как-то через Message можно сообщение поймать.
← →
Rouse_ © (2002-12-13 01:56) [1]HOOK+WM_CLOSE
Желаю успехов
← →
Kirill45 (2002-12-13 02:14) [2]to Rouse_
Не понял - поподробнее пожалуйста
← →
Ihor Osov'yak © (2002-12-13 02:16) [3]2 Rouse_ © (13.12.02 01:56)
Имхо не совсем верно. Ибо окошка может проигноровать WM_CLOSE.
Вернее бы было Hook+WH_CBT+HCBT_DESTROYWND
PS 2 Kirill45 - поищи в MSDN или на гугле по этим ключевым словечкам...
← →
Ihor Osov'yak © (2002-12-13 02:22) [4]const HookHandle: hHook = 0;
function Kah_hook(Code:integer; aWParam:WPARAM; aLParam:LParam):longint; stdcall;
begin
if code <0 then begin
Result := CallNextHookEx(HookHandle, Code, aWParam, aLParam );
Exit;
end;
if Code = HCBT_DESTROYWND then begin
.....
end;
Result:= CallNextHookEx(HookHandle, Code, aWParam, aLParam );
end;
procedure OnHook;
begin
if HookHandle<>0 then exit;
HookHandle:=SetWindowsHookEx(WH_CBT,@Kah_hook,0,GetCurrentThreadId);
end;
procedure OffHook;
begin
if HookHandle=0 then exit;
UnhookWindowsHookEx(HookHandle);
HookHandle:=0;
end;
← →
Rouse_ © (2002-12-13 02:24) [5]> Ihor Osov"yak © (13.12.02 02:16)
Верно, как то не подумал :))
> Kirill45 (13.12.02 02:14)
Ставишь хук на выше приведенные мной и Ihor Osov"yak сообщения и все (и будет Вам счастье :)
Желаю успехов
← →
Kirill45 (2002-12-13 02:24) [6]Да я по ищу - ты мне проблемку обрисуй - что надо искать.
А вообще как это ловится - я не прошу примеров - просто
методы - как это делатся
← →
Ihor Osov'yak © (2002-12-13 02:24) [7]сорри за навязчивость
HookHandle:=SetWindowsHookEx(WH_CBT,@Kah_hook,0, GetCurrentThreadId); - это только для текущего потока. Вам может быть и по другому надо...
← →
Kirill45 (2002-12-13 02:39) [8]Вы меня простите пожалуйста - я с такой проблемкой первый раз столкнулся - вот для примеров приведенных нужна еще и dll
(я просто кое чё почитал но не особо въехал)
Вы обрисуете принципы - я могу просто из модуля дать Get.. ну или Wait.. - дайте это в принципе, а как написать я сам придумаю
← →
Suntechnic © (2002-12-13 02:54) [9]Kirill45
закрытие окна другой программы
Ihor Osov"yak ©
сорри за навязчивость
HookHandle:=SetWindowsHookEx(WH_CBT,@Kah_hook,0,GetCurrentThreadId); - это только для текущего потока. Вам может быть и по другому надо...
Ему не может быть, а ему точно другое надо. Ключевое слово в вопросе другой программы. Это значит, что Hook ему надо глобальный ставить, а это значит, что последний параметр SetWindowsHookEx должен быть 0 и сам hook должен проживать в отдельной dll.
Kirill45 (13.12.02 02:39)
Вы меня простите пожалуйста - я с такой проблемкой первый раз столкнулся - вот для примеров приведенных нужна еще и dll
(я просто кое чё почитал но не особо въехал)
А ты подробней почитай и "въедь" лучше. Принцип заключается в том, что тебе надо установить глобальный хук. А глобальные хуки, как я уже упоминал, должны проживать в отдельных dll. Возьми любой пример, коих навалом на этом сайте, и постарайся разобраться, ну а если непонятно, то задавай конкретный вопрос.
← →
Ihor Osov'yak © (2002-12-13 02:58) [10]2 Kirill45 (13.12.02 02:39)
Чего то не вьехал... Да, длл... Причем она будет внедренная в адресное пространство другого процесса...
Как организовать взаимодействие с dll, которая внедрена в адресное пространство чужого процесса - это уже другой вопрос...
Способов несколько - от посылки сообщений до файлов, проектируемых в память....
Сории, время познеее, ухожу спать...
← →
Ihor Osov'yak © (2002-12-13 03:01) [11]2 Suntechnic © (13.12.02 02:54)
> Ему не может быть, а ему точно другое надо
:-) я это знаю. Просто попытка подтолкнуть человека ненавязчиво немного самому подумать...
← →
Kirill45 (2002-12-13 03:32) [12]Дайте пожалуйта ссылки на обзорную информацию - ну типа описания проблемы
← →
Song © (2002-12-13 09:03) [13]На этом сайте есть статья "Хуки. Аспекты реализации". Почитай, разберись.
← →
Kirill45 (2002-12-13 11:16) [14]Спасибо за внимание!
информацию по Hook-ам я собрал - разобрался
в общем то вопрос был в способах (методах)
как это можно сделать (если можно) кроме как через Нооk
(тут у меня чисто теоретическая проблема)
Страницы: 1 вся ветка
Текущий архив: 2003.01.27;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.02 c