![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как поймать заголовки окон [D7, Win95/98, Win2k, WinXP]
Drunya © (2004-01-27 07:07:00)Написал процу по поимке заголовков окна и записи его в текстовый файл при нажатии клавиши мыши, но при повторном возвращении на окно с другого окна, почему-то не хочетъ печатать в файл заголовок. Если кто может мож поможет.
Буду признателен. Проца прелагается.
wnd1: Hwnd;
procedure GetNameWindow;
var
ti: TDateTime;
F1: TextFile;
wnd: HWnd;
bufname: array[0..127] of char;
begin
wnd := GetForegroundWindow;
if wnd1 <> wnd then
begin
GetWindowText(wnd, bufname, sizeof(bufname));
AssignFile(F1, 'C:\1.txt');
Append(F1);
Write(F1, bufname);
Flush(F1);
CloseFile(F1);
end;
wnd1 := wnd;
end;
GrayFace (2004-01-27 15:51:00) [1]hook на wm_activate. Кто-то это недавно спрашивал(можно поиск) и в факе есть.
Digitman (2004-01-27 13:58:00) [2]
> Drunya (27.01.04 13:21) [2]
мои предложения последуют лишь после того, как ты опишешь подробно. что, собственно, в какое время и при каких условиях ты "ловить" собрался
ибо окно с одним и тем же именем, открываемое одним и тем же приложением, стартуемым неоднократно, вовсе не обязано иметь один и тот же хэндл ... и как результат вместо одной проблемы ты поимеешь еще и другую - в файле будут присутствовать одинаковые записи
YuRock (2004-01-27 13:33:00) [3]Я предлагаю
end;
wnd1 := wnd;
end;
заменить на
wnd1 := wnd;
end;
end;
Не уверен, но должно помочь...:)
Drunya (2004-01-27 13:21:00) [4]Ваши предложения Digitman....
Digitman (2004-01-27 09:07:00) [5]
> почему-то не хочетъ
потому что wnd1 <> wnd = false .. вот и не печатает)