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

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

поиск окна [D6, WinME, Win2k]


alex123 ©   (2002-12-12 19:37:00) 

привет люди.
опять API
как при помощи EnumWindows() найти заданное название окна и
узнать активно ли оно.
пример просто необходим.
благодарю зарание.


Kirill45   (2002-12-13 02:12:00) [1]

а ну да :))))
просто GetForegroundWindow


Kirill45   (2002-12-13 02:08:00) [2]

Ну примерно вот так :

var Y_Find: HWND
.....

function Win_Enum(Handle: HWND; Info: Pointer): Bool; stdcall;
var Text: array [0..255] of Char;
begin
//GetClassName(Handle, Text, 255)
//GetWindowText(Handle, Text, 255);
//ну или еще чего
// ляляля := StrPas(Text)
//Y_Find = Handle;
// ну и Info
....
Result := True // Что б компилятор не ругался, а там проверяй сам
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
.....
EnumWindows(@Win_Enum,0);
.....
end;
по такому же принципу EnumChildWindows и т.д


Song   (2002-12-12 20:23:00) [3]

В call-back ф-ию приходит HWND. По нему определяешь название окна - GetWindowText или WM_GETTEXT

"узнать активно ли оно", а это уже зависит от того, какое состояние окна ты считаешь за активное. Это может IsWindowEnabled(), IsIconic(), IsWindowVisible() и пр.


Наверх

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