![]() |
|
|
#1
|
|||
|
|||
|
есть 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_SHOWWINDOW);
....а как сделать тоже для 8ми окон имеющих в своем названии одинаковые символы "ААА" и потом расположить их друг за другом?) Последний раз редактировалось Admin, 03.08.2012 в 15:10. |
|
#2
|
|||
|
|||
|
Цитата:
|
|
#3
|
|||
|
|||
|
и как ее переделать , что бы на выходе получались хэндлы содержащие в названии "ААА"?)
|
|
#4
|
|||
|
|||
|
Цитата:
Код:
type
THwndList = array of HWND;
procedure FindWindowByTitle(WindowTitle: string; out HwndList: THwndList);
var
NextHandle: Hwnd;
NextTitle: array[0..260] of char;
begin
HwndList:=nil;
// 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
SetLength(HwndList, Length(HwndList)+1);
HwndList[High(HwndList)] := NextHandle;
end
else
// Get the next window
NextHandle := GetWindow(NextHandle, GW_HWNDNEXT);
end;
end; |
|
#5
|
|||
|
|||
|
а как потом обращаться к элементам этого массива , во первых его же надо задать в var:
HwndList: array[0..10] of THwndList; и выглядеть это обращение будет так? (пишет ошибки про несовпадающие типы параметров) HwndList[1] := FindWindowByTitle('ААА',HwndList); |
|
#6
|
||||
|
||||
|
Цитата:
|
|
#7
|
|||
|
|||
|
Цитата:
Код:
var HwndList: THwndList; |
| Этот пользователь сказал Спасибо MiraLaklamon за это полезное сообщение: | ||
colanah (03.08.2012)
| ||
|
#8
|
|||
|
|||
|
ok, спасибо пошел разбираться)
|