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

Вниз

Как правильно в ДЕЛФИ описать процедуру CBT хука?   Найти похожие ветки 

 
UNIVERSAL   (2003-01-17 16:01) [0]

Как правильно в ДЕЛФИ описать процедуру CBT хука, которая отлавливает создание окон? Всегда ли она должна быть описана в DLL или её можно описать в exe?


 
Игорь Шевченко ©   (2003-01-17 16:06) [1]

RTFM: SetWindowsHookEx, там все-все написано...


 
UNIVERSAL   (2003-01-17 16:13) [2]

Я уже читал, видимо пригнадлежу к тем людям, до которых лучше доходит, когда им объясняют на примерах. Я только разбираюсь в этих хуках...


 
Игорь Шевченко ©   (2003-01-17 16:44) [3]

UNIVERSAL (17.01.03 16:13)

http://msdn.microsoft.com - примеров с хуками - полно.


 
UNIVERSAL   (2003-01-20 09:02) [4]

Спасибо посмотрю.


 
Vasily Terekhov   (2003-01-20 09:32) [5]

// Set Hook
HookCBTHandle := SetWindowsHookEx(WH_CBT, @CBTHook, hInstance, 0);
if HookCBTHandle = 0 then
MessageBox(0, "Set CBT hook error", "ERROR", MB_ICONHAND);

// Remove hook
if HookCBTHandle <> 0 then
UnhookWindowsHookEx(HookCBTHandle);

// CBT Function
function CBTHook(Code : Integer; wParam, lParam: DWORD): Longint; stdcall;
begin
if Code >= 0 then
begin
case Code of
HCBT_MINMAX:
begin
end;
.........
end;
Result := 0;
end
else
Result := CallNextHookEx(HookCBTHandle, Code, wParam, lParam);
end;


 
UNIVERSAL   (2003-01-20 10:28) [6]

Подскажите, плз, как занести в приложение, ставящее хук (в ListBox), информацию о создании окна (т.е. другого приложения)?


 
UNIVERSAL   (2003-01-22 16:25) [7]

>>Vasily Terekhov
Вы неправы если размещаете процедуры установки и снятия хука в DLL вместе с процедурой обработки хука. В ссылке на МСДН, предоставленной выше, английским языком написано, что процедура обработки хука должна быть в DLL, а ставиться хук должен в отдельном приложении
цитата:
You must place a global hook procedure in a dynamic-link library (DLL) separate from the application installing the hook procedure.

Теперь у меня вопрос. Из хелпа на вышеуказанном сайте непонятно как должна работать процедура обработки хука в частности CBTProc
Возможно я невнимательно (1000 раз) посмотрел этот модуль, но я так и не понял что такое CBT в строке

if (nCode < 0) // do not process message
return CallNextHookEx(myhookdata[CBT].hhook, nCode, wParam, lParam);

и откуда оно берётся, а также NUMHOOKS?
Вообще как должна процедура обработки хука, наход-ся в DLL узнать хендл текущего хука (HHOOK), поставленного в приложении?
Кто-нить из профи помогите плз. Может я, конечно, дуратские вопросы задаю, но очень разобраться хочется.


 
UNIVERSAL   (2003-01-24 14:16) [8]

>>Vasily Terekhov
Сорри неправ я.



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

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

Наверх




Память: 0.48 MB
Время: 0.013 c
4-54373
Shuric
2002-11-26 22:46
2003.03.17
Совмещение DOS и Widows


1-53996
Armageddon
2003-03-05 23:06
2003.03.17
Кто знает как конвектировать файлы в .doc формат в RTF и обратно


14-54297
AZ
2003-02-28 07:10
2003.03.17
MSN Messenger


1-53981
helen
2003-03-06 11:11
2003.03.17
работа с формами


14-54163
Феликс
2003-02-28 20:49
2003.03.17
От тюрьмы и от сумы...