|
#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; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |