Что нового

Автоустановка QIP2005

Kr0nd

Новичок
Сообщения
3
Репутация
0
Вдохновленный примерами, создал скрипт автоустановки QIP2005, но вот незадача в определенный момент не срабатывает WinWait и установка залипает в самом интересном месте, пришлось поставить Sleep, дальше все прошло на ура.
Собственно вопрос к гуру AutoIt есть ли более изящный (правильный) способ побороть это?
Текст скрипта:
Код:
; Установка QIP 2005
; Переменные
$sPathToProgam = "QIP2005\qip2005.exe"
$sMainWindowName = "Установка — QIP 2005"
; Код программы
;Установка программы
Run($sPathToProgam)
WinWait("Выберите язык установки", "Выберите язык, который будет использован в  процессе установки:")
ControlClick("[CLASS:TSelectLanguageForm;TITLE:Выберите язык установки]","","[CLASS:TNewButton; INSTANCE:1]")
$hWinQIP = WinGetHandle($sMainWindowName)
WinWait($hWinQIP, "Вас приветствует Мастер установки QIP 2005")
ControlClick($hWinQIP, "Вас приветствует Мастер установки QIP 2005", "[CLASS:TNewButton; INSTANCE:1]")
WinWait($hWinQIP, "Выбор папки установки")
ControlClick($hWinQIP, "Выбор папки установки", "[CLASS:TRadioButton; INSTANCE:1]")
ControlClick($hWinQIP, "Выбор папки установки", "[CLASS:TNewCheckListBox; INSTANCE:1]","Main",1,10,10)
ControlClick($hWinQIP, "Выбор папки установки", "[CLASS:TNewCheckListBox; INSTANCE:1]","Main",1,10,32)
ControlClick($hWinQIP, "Выбор папки установки", "[CLASS:TNewButton; INSTANCE:3]")
Sleep(5000)
WinWait($hWinQIP, "Принять участие")
ControlClick($hWinQIP, "Принять участие", "[CLASS:TCheckBox; INSTANCE:1]","Main",1,7,7)
ControlClick($hWinQIP, "Участвовать в исследовании посещаемости Интернета", "[CLASS:TNewButton; INSTANCE:3]")
WinWait($hWinQIP, "Завершение Мастера установки QIP 2005")
ControlClick($hWinQIP, "Завершение Мастера установки QIP 2005", "[CLASS:TRadioButton; INSTANCE:1]")
ControlClick($hWinQIP, "Завершение Мастера установки QIP 2005", "[CLASS:TNewCheckListBox; INSTANCE:1]","Main",1,10,10)
ControlClick($hWinQIP, "Завершение Мастера установки QIP 2005", "[CLASS:TNewCheckListBox; INSTANCE:1]","Main",1,10,76)
ControlClick($hWinQIP, "Завершение Мастера установки QIP 2005", "[CLASS:TNewCheckListBox; INSTANCE:1]","Main",1,10,98)
ControlClick($hWinQIP, "Завершение Мастера установки QIP 2005", "[CLASS:TNewButton; INSTANCE:3]")

Тихую и автоустановку не пробовал, но вроде и ключей кроме /sp- /silent ничего нет.
 
Автор
K

Kr0nd

Новичок
Сообщения
3
Репутация
0
Погуглил)))
Эти ключи работают только на версиях начиная с qip unfium, у меня же qip2005.
Ну и любом случае хотелось бы уметь обходить такие проблемы.
 

chymax3m

Новичок
Сообщения
26
Репутация
1
Только что скачал qip2005 v8097 и он упакован при помощи Inno Setup а значит поддерживает стандартние для Inno ключи тихой установки...
Ну и любом случае хотелось бы уметь обходить такие проблемы.
Ну, это дело хозяйское. Как по мне, так лучше пользоваться ключами установки, эсли это возможно, а уж потом искать другие пути решения.
 
Автор
K

Kr0nd

Новичок
Сообщения
3
Репутация
0
Видимо мы на разных языках разговариваем))
Меня смущает то, что qip втыкает по умолчанию свои сервисы и устанавливает поиск по умолчанию, эти параметры отключить с помощью ключей установки нельзя (или я не знаю как). Да Inno Setup поддерживает ключи установки, но они ограничены SILENT и /VERYSILENT, всё.
Устанавливать qip с параметрами по-умолчанию, а потом выковыривать из реестра все его "бонусы" желания совсем нет. Загвоздка не в том как устанавливать приложение, а почему не отрабатывает строка
Код:
WinWait($hWinQIP, "Принять участие")

запущенная без предварительного Sleep.
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
У меня так получилось :smile:
Код:
; Установка QIP 2005
; Переменные
$sPathToProgam = "QIP2005\qip2005.exe"
$sMainWindowName = "Установка — QIP 2005"
; Код программы
;Установка программы
Run($sPathToProgam)
WinWait("Выберите язык установки", "Выберите язык, который будет использован в  процессе установки:")
ControlClick("[CLASS:TSelectLanguageForm;TITLE:Выберите язык установки]","","[CLASS:TNewButton; INSTANCE:1]")
$hWinQIP = WinGetHandle($sMainWindowName)
WinWait($hWinQIP, "Вас приветствует Мастер установки QIP 2005")
ControlClick($hWinQIP, "Вас приветствует Мастер установки QIP 2005", "[CLASS:TNewButton; INSTANCE:1]")
WinWait($hWinQIP, "Выбор папки установки")
ControlClick($hWinQIP, "Выбор папки установки", "[CLASS:TRadioButton; INSTANCE:1]")
ControlClick($hWinQIP, "Выбор папки установки", "[CLASS:TNewCheckListBox; INSTANCE:1]","Main",1,10,10)
ControlClick($hWinQIP, "Выбор папки установки", "[CLASS:TNewCheckListBox; INSTANCE:1]","Main",1,10,32)
ControlClick($hWinQIP, "Выбор папки установки", "[CLASS:TNewButton; INSTANCE:3]")

WinWaitActive($hWinQIP, "Принять участие") ;изменил
ControlClick($hWinQIP, "", "[CLASS:TCheckBox; INSTANCE:1]") ;изменил
ControlClick($hWinQIP, "", "[CLASS:TNewButton; INSTANCE:3]") ;изменил

WinWait($hWinQIP, "Завершение Мастера установки QIP 2005")
ControlClick($hWinQIP, "Завершение Мастера установки QIP 2005", "[CLASS:TRadioButton; INSTANCE:1]")
ControlClick($hWinQIP, "Завершение Мастера установки QIP 2005", "[CLASS:TNewCheckListBox; INSTANCE:1]","Main",1,10,10)
ControlClick($hWinQIP, "Завершение Мастера установки QIP 2005", "[CLASS:TNewCheckListBox; INSTANCE:1]","Main",1,10,76)
ControlClick($hWinQIP, "Завершение Мастера установки QIP 2005", "[CLASS:TNewCheckListBox; INSTANCE:1]","Main",1,10,98)
ControlClick($hWinQIP, "Завершение Мастера установки QIP 2005", "[CLASS:TNewButton; INSTANCE:3]")
 
Верх