Вниз
Скачать: 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.017 c
14-54290
sancho
2003-02-28 18:06
2003.03.17
Компьютер силён своей периферией. Или я не прав?


1-54112
Фагот
2003-03-05 17:14
2003.03.17
RichEdit (сохранение в файл)


1-54105
Shc
2003-03-01 18:58
2003.03.17
Вставка объекта как рисунка


1-53994
sashok
2003-03-04 18:45
2003.03.17
Помогите с графикой. Как мне вычислить заполнение черного цвета.


6-54152
WingGod
2003-01-24 02:45
2003.03.17
События...




   Наверх