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

Вниз

Хук WH_CBT   Найти похожие ветки 

 
Sodom ©   (2003-01-24 13:00) [0]

У меня такая проблема: ставлю я этот хук. хочу чтобы в файл писались заголовки новых окон. Проца фильтра выглядит так:

function CBTProc(nCode: Integer; wParam: WPARAM;
lParam: LPARAM ): LRESULT; stdcall;
var f:textFile; h:HWND; s:string;
begin
try
if nCode>=0 then
if ncode=HCBT_CREATEWND then
begin
H:=WParam;
GetWindowText(H, buff, sizeof(buff));
s:=buff;
AssignFile(f,"D:\tmp\12.txt");
if fileExists("D:\tmp\12.txt") then Append(f)
else rewrite(f);
Writeln(f,WParam," - ",s);
CloseFile(f);
end;
except
end;
result:=CallNextHookEx(g_hhk, nCode, wParam, lParam);
end;

Но при создании одного окна во время хука в файл пишется штук 18 хэндлов и пустые заголовки. В чем косяк? Подскажите, кто разбирался. Сразу отвечу тем, кто захочет узнать зачем мне это. Только чтобы разобраться с этом, увидеть как это работает.


 
Sodom ©   (2003-01-24 13:31) [1]

Чуть-чуть я догнал. Наверное это от того, что окно еще не создано, но как же тогда решить проблему?


 
Vasily Terekhov   (2003-01-24 14:11) [2]

18 хендлов, т.к. у тебя записывается хендлы всех оконных элементов, создаваемых вместе с окном (кнопки, списки...)
надо проверять окно на Parent=0, если нет, то брать Parent и рекурсия :))
что касается заколовка, то я тоже с этим мучался, так и не удалось мне получить на этой стадии создания окна его заколовок, хотя хелп это обещает :))
А тебе надо именно заголовки всех окон, или названия приложений?


 
UNIVERSAL   (2003-01-24 14:57) [3]

Названия только родительских окон
....
if (nCode=HCBT_CREATEWND) then
if tagCBT_CREATEWNDA(Pointer(lParam)^).lpcs.hwndParent=0 then
.....
Если я всвё правильно понимаю.
А в ListBox приложения ставящего хук как заголовки занести кто-нить знает?


 
Sodom ©   (2003-01-24 15:35) [4]

to UNIVERSAL: Спасибо. Теперь пишет один раз, но хэндл окна В WParam не создоваемого окна. Среди тех 18-ти, что были один раз был и нужный, но сейчас короче не тот.



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

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

Наверх




Память: 0.47 MB
Время: 0.019 c
14-54191
Marser
2003-03-01 00:20
2003.03.17
Pets


3-53905
Шоломицкий
2003-02-25 16:29
2003.03.17
Порядковый номер


7-54348
БАА
2003-01-21 23:10
2003.03.17
О великий и могучий Com порт...


1-54038
crazy_2k
2003-03-05 00:58
2003.03.17
Как подсчитать количество таблиц в БД.


14-54314
Leon crom
2003-02-27 20:00
2003.03.17
любовь к родине