![]() |
|
#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, спасибо пошел разбираться)
|