Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
3-86695
S
2003-01-05 12:42
2003.01.27
Вопрос создания таблицы в access?


1-86812
simka
2003-01-19 00:37
2003.01.27
вопрос по memo


14-87144
Sergo
2003-01-10 11:27
2003.01.27
PARADOX


14-87061
Виталий
2003-01-08 14:49
2003.01.27
Общие вопросы


4-87223
kirill8
2002-12-13 16:45
2003.01.27
закрыть окно