![]() |
|
|
#1
|
|||
|
|||
|
Как нажимать на кнопки в чужом окне? Я знаю как к нему подключиться, делаю я это вот таким способом:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var q:Thandle;
begin
q:=findwindow('QWidget','iCCup Launcher');
if q <> 0 then
begin
Label1.Caption:='Подключён';
end
else
Label1.Caption:='Не подключён';
end;В Label выводится текст 'Подключён'; Нашел класс окна и имя через программу WinSpy. Окно в котором я хочу нажимать на кнопки называется ICCup Launcher Я так понял чтоб нажать на кнопку в чужом окне нужно знать его handle а как его узнать? Последний раз редактировалось Admin, 16.09.2017 в 12:00. |
|
#2
|
||||
|
||||
|
Use EnumChildWindows, Luke!
|
|
#3
|
||||
|
||||
|
Цитата:
А вообще, можно нажать и так Код:
procedure ClickOnForm(wnd: HWND; caption: string);
var
TheChildHandle: HWND;
begin
TheChildHandle := FindWindowEx(wnd, 0, nil, PChar(caption));
SendMessage(TheChildHandle, WM_LButtonDown, 1, 1);
SendMessage(TheChildHandle, WM_LButtonUP, 1, 1);
end;
procedure TForm1.Button4Click(Sender: TObject);
var
wnd: HWND;
caption: string;
begin
wnd := GetTopWindow(0);
repeat
SetLength(caption, GetWindowtextLength(wnd));
GetWindowText(wnd, @caption[1], length(caption) + 1);
if (trim(caption) = 'iCCup Launcher') then
ClickOnForm(wnd, 'Имя кнопки');
wnd := GetNextWindow(wnd, GW_HWNDNEXT);
until wnd = 0;
end; |