Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Заголовог активного окна


Автор: badman 9.4.2006, 05:48
Привет всем!
Может кто знает как в Делфи получить заголовок активного окна, или же окна которое находится под активным окном?

Автор: MIX55 9.4.2006, 13:30
Если я правильно понял то:

GetForegroundWindow - возвращает дескриптор активного окна.

а вот так можно получить текст заголовка определенного окна: http://delphiworld.narod.ru/base/get_win_cpt.html в том числе и активного

Автор: Sunvas 10.4.2006, 00:34
Ставишь таймер с интервалом 100 и вот че там пишешь
Код

procedure TForm1.Timer1Timer(Sender: TObject);
Var
WND:HWND;
WinClass,WinCap:String;
begin
WND:=GetForegroundWindow;
SetLength(WinCap,SendMessage(WND,WM_GETTEXTLENGTH,0,0)+1);
GetWindowText(WND,@WinCap[1],Length(WinCap)+1);
SetLength(WinClass,255);
GetClassName(WND,@WinClass[1],Length(WinClass));
///////////Далее свое: WinClass - класс окна, WinCap - заголовок окна.
end;

Автор: badman 10.4.2006, 06:32
Вот спасибо, огромное.

Автор: Snowy 10.4.2006, 08:54
http://forum.vingrad.ru/index.php?showtopic=86044&hl=getforegroundwindow

Автор: badman 16.4.2006, 07:03
Понял, что заголовок активного окна мне не очень помогает, так как моё приложение находится поверх всех окон, вопрос как узнать заголовок неактивного окна находящегося под моим окном (приложением)? 

Автор: Тьма 16.4.2006, 09:16
var s : PChar;
...
H := GetWindow(Handle, GW_HWNDPREV);
GetWindowText(h,  @s, 256);//хендл, адрес буфера, длина буфера 

Автор: badman 19.4.2006, 06:11
Цитата(Тьма @  16.4.2006,  01:16 Найти цитируемый пост)
var s : PChar;
...
H := GetWindow(Handle, GW_HWNDPREV);
GetWindowText(h,  @s, 256);//хендл, адрес буфера, длина буфера  

Что то не получается smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)