Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо