Главная страница
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.02 c
14-54300
Nick-From
2003-02-26 19:47
2003.03.17
есть функция Log(x) и Exp(x), как выразить Ln(x) замучился вспоми


14-54253
Nimda2000
2003-02-28 13:06
2003.03.17
Кодеровка


3-53931
User_OKA
2003-02-26 09:54
2003.03.17
форматирование ячеек Excel


1-54088
BillyJeans
2003-03-05 13:29
2003.03.17
Новый class и его property


3-53943
ol
2003-02-26 13:45
2003.03.17
количество дней в месяце