Вниз
Скачать: CL | DM;

-= CBT Хук =-   Найти похожие ветки 

 
elf_123 ©   (2003-01-15 21:03) [0]

Господа MASTAKи!
Помогите, пожалуйста с вопросом:

Я ставлю ЦБТ ХУК. Обрабатываю создание окон верхнего уровня.
Пишу их заголовки в файл:

...
assignfile(f,"log.log");
append(f);
writeln(f,tagCBT_CREATEWNDA(Pointer(lParam)^).lpcs.lpszName);
closeFile(f);
...


Но реакция на сиё у каждой проги своя, неожиданная. Калькулятор регистрирует ещё какое-то невидимое окно, ЭйСиДиСи сбивает мою прогу. А Корзина, Мои Док.., Мой Комп.. итд вовсе вызывают ошибку оболочки!
Как сделать нормальный логгер?

Заранее спасибо!


 
UNIVERSAL   (2003-01-24 14:52) [1]

Ну чё разобрался с хуком? Вот мой код он тоже не работает может подскажешь в чём моя ошибка? В файл пишется только первое окно(по-моему первое).

function CBTProc(nCode : Integer; wParam, lParam: integer): LResult; stdcall;
var f:Text;
begin
if nCode >= 0 then
begin
if (nCode=HCBT_CREATEWND) then
if tagCBT_CREATEWNDA(Pointer(lParam)^).lpcs.hwndParent=0 then
begin
AssignFile(f,GetCurrentDir + "\createwnd.log");
{$I-}
Reset (F);
{$I+}
if IOResult <>0 then Rewrite(F);
Writeln(F,tagCBT_CREATEWNDA(Pointer(lParam)^).lpcs.lpszName);
CloseFile(F);
end;
Result:=CallNextHookEx(HookHandle , nCode, wParam, lParam);
Exit;
end
else Result := CallNextHookEx(HookHandle , nCode, wParam, lParam);

end;

procedure SetCBTHook(AListBox:TListBox);
begin
lb:=AListBox;
HookHandle := SetWindowsHookEx(WH_CBT,@CBTProc,HInstance,0);
if HookHandle =0 then LB.Items.Add("?? ??????? ????????? ???.")
else LB.Items.Add("??? ?????????. Handle=" + IntToStr(HookHandle));
end;

procedure RemoveCBTHook;
begin
UnhookWindowsHookEx(HookHandle);
LB.Items.Add("??? ????.");
end;

exports
SetCBTHook,
RemoveCBTHook;
begin
end.



 
UNIVERSAL   (2003-01-24 15:06) [2]

Посмотри это - работает правильно.
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1043402432&n=5



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.012 c
14-54246
sergeyy
2003-02-28 08:48
2003.03.17
Отступы в коде. Как их сделать для целого блока?


14-54244
iNew
2003-02-28 10:39
2003.03.17
Вопрос по конструкции if (...) and (...) then


1-54027
multik
2003-03-03 22:32
2003.03.17
Привет всем!!! Как узнать какой символ соответствует координатам.


14-54313
zzet
2003-03-01 17:14
2003.03.17
Boot - вирус?


9-53836
Джастер
2002-10-15 20:42
2003.03.17
Где же найти реальный движок?




   Наверх