![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить caption окна чужой программы? [D7, Win95/98, WinME, NT4, Win2k, WinXP]
Asail © (2006-02-13 10:00:00)Здрасте!
Есть задача отслеживать, какая программа (чужая) активна (т.е. в фокусе одно из ее окон).
Для получения handle активного окна использую GetForegroundWindow. А как теперь по этому handl'у прочитать содержимое заголовка окна?
Спасибо!
Asail (2006-02-13 10:34:00) [1]Да, так работает!!!
Только пришлось (не понял почему) добавить в размер еще один байт:
Count:=GetWindowTextLength(H)+1;
Хотя, впрочем, наверное, знаю - для '\0' в конце.
Marser (2006-02-13 10:33:00) [2]> Count:=GetWindowTextLength(H);
> SetLength(Str,5);
Следует читать как
Count:=GetWindowTextLength(H);
SetLength(Str,Count);
Pit (2006-02-13 10:32:00) [3]
var
H : hWND;
Count : Integer;
Str :array [0..128] of Char;
begin
H:=GetForegroundWindow;
Count:=GetWindowTextLength(H);
GetWindowText(H,Str,Count);
Edit1.Text:=Str;
Marser (2006-02-13 10:31:00) [4]Попробуй так:
var
H : hWND;
Count : Integer;
Str : String;
begin
H:=GetForegroundWindow;
Count:=GetWindowTextLength(H);
SetLength(Str,5);
GetWindowText(H,@Str[1],Count);
Edit1.Text:=Str;
end;
ЮЮ (2006-02-13 10:30:00) [5]SetLength(str, Count);
GetWindowText(H,PChar(Str),Count);
Asail (2006-02-13 10:27:00) [6]Спасибо! Только у меня чего-то не фурычит :-(
Делаю так:
var
H : hWND;
Count : Integer;
Str : String;
begin
...
Str:='';
H:=GetForegroundWindow;
Count:=GetWindowTextLength(H);
GetWindowText(H,PChar(Str),Count);
Edit1.Text:=Str;
...
end;
В чем ошибка?
Marser (2006-02-13 10:07:00) [7]GetWindowText