Тема: Окна
Показать сообщение отдельно
  #3  
Старый 18.09.2017, 07:32
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Himmelsbach
...Я так понял чтоб нажать на кнопку в чужом окне нужно знать его handle а как его узнать?
Если "В Label выводится текст 'Подключён'", то хэндл уже в q

А вообще, можно нажать и так
Код:
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;
Ответить с цитированием