![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
FindWindow [D6, Win2k]
sveloga © (2003-01-23 13:19:00)никак не пойму где грабли зарылись:
Procedure xxx ();
var
Child: TMainBase;
hwnd: integer;
begin
hwnd := FindWindow (nil, "MainBase");
if hwnd <> 0 then
begin
{}
end
else
begin
Child := TMainBase.Create(Application);
Child.Caption := "MainBase";
end;
end;
Hикак не желает находить оконо когда оно уже существует...
Nick_N_A (2003-01-24 06:27:00) [1]Лучше искать вручную
wnd:=128;
repeat
if isWindow(wnd) then Begin
// найдено следуещее окно
... getWindowText ... getClassName ...
if SearchOK then break;
end;
wnd:=wnd+4;
until not ((wnd<10000000{???}));
sveloga (2003-01-23 15:36:00) [2]Если искать только по классу, то он хэнл выдает, если даже этого окна еще не создано.
MBo (2003-01-23 15:21:00) [3]Now по-русски "Теперь"
Однако и твой первый вариант рабочий, если имя верно.
Можно искать и только по классу окна
hwnd := FindWindow ("TMainBase",nil);
sveloga (2003-01-23 15:17:00) [4]Там красным по белому написано: [Now Supported on Windows NT]
А у меня именно НТ :-(
Zz_ (2003-01-23 15:00:00) [5]FindWindowEx
sveloga (2003-01-23 14:58:00) [6]Такой вариант тоже пробовал, результат тот же.
LongIsland (2003-01-23 13:29:00) [7]hwnd := FindWindow ("TMainBase", "MainBase");