
03.08.2012, 12:40
|
Новичок
|
|
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
|
|
Цитата:
Сообщение от colanah
есть 8 окон
имеющие в своем названии одинаковые символы например "ААА"
для одного окна делаю так:
функция FindWindowByTitle возвращает handle окна имеющего совпадение по названию или части названия...
function FindWindowByTitle(WindowTitle: string): Hwnd;
var
NextHandle: Hwnd;
NextTitle: array[0..260] of char;
begin
// Get the first window
NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST);
while NextHandle > 0 do
begin
// retrieve its text
GetWindowText(NextHandle, NextTitle, 255);
if Pos(WindowTitle, StrPas(NextTitle)) <> 0 then
begin
Result := NextHandle;
Exit;
end
else
// Get the next window
NextHandle := GetWindow(NextHandle, GW_HWNDNEXT);
end;
Result := 0;
end;
и потом обращаюсь к этому окну и делаю там с ним свои дела( помещаю скрин окна на форму и выравниваю)
begin
h1:= FindWindowByTitle('ААА')
if h1 <> 0 then // if we found
SetWindowPos(h1,HWND_TOP,0,0,502,362,SWP_SHOWWINDO W);
....
а как сделать тоже для 8ми окон имеющих в своем названии одинаковые символы "ААА" и потом расположить их друг за другом?)
|
Можно например переделать функцию FindWindowByTitle, чтобы она возвращала хэндл не первого попавшегося окна, а массив хэндлов.
|