Русское сообщество AutoIt

Продвинутая автоматизация => Автоустановка приложений => Тема начата: aventru от Сентябрь 05, 2014, 11:59:13

Название: Распознание активного окна
Отправлено: aventru от Сентябрь 05, 2014, 11:59:13
Возникают ситуации при которых уже было установлено ПО, но его нужно переустановить и выходят не те окна которые мы ждем... Необходимо чтоб при выходе окна программа могла распознать окно (WinGetTitle("[active]")) и выбрать необходимые действия.
Я только недавно стал изучать autoit и есть проблемы в написании синтаксиса... поэтому прошу помощи =)

Код: AutoIt [Выделить]
#RequireAdmin
Run("cadesplugin.exe")
$title = WinGetTitle("[active]")
WinWaitActive('КриптоПро ЭЦП Browser plug-in')
Send('{ENTER}')
$title = WinGetTitle("[active]")
WinWaitActive('$title')
If $title = ("Обновление") Then
   Send('{ENTER}')
   WinWaitActive('КриптоПро ЭЦП Browser plug-in')
   Send('{ENTER}')
.....

 

Название: Re: Распознание активного окна
Отправлено: InnI от Сентябрь 05, 2014, 13:25:23
aventru  [?]
Цитировать
выходят не те окна которые мы ждем
А вы ждите те окна, которые нужны. Чтобы понять - установка или обновление - вы должны заранее знать, чем окна отличаются и ждать любое из них. Когда дождались - выполняйте соответствующие действия. Например
Код: AutoIt [Выделить]
$TitleInstall = "Установка"
$TitleUpdate = "Обновление"

Run("program.exe")

Do
  Sleep(100)
Until WinExists($TitleInstall) Or WinExists($TitleUpdate)

If WinExists($TitleInstall) Then
  ; установка
  WinWaitActive($TitleInstall)
Else
  ; обновление
  WinWaitActive($TitleUpdate)
EndIf