Установка ICQ. Поправьте что не так.

Ответить
Аватара пользователя
seriych

Установка ICQ. Поправьте что не так.

Сообщение seriych »

Автоматическая установка ICQLite:
http://ftp.icq.com/pub/ICQLite/install_icqlite.exe


Это мой первый скрипт AutoIt (не считая хеллоувордов Изображение ). Вроде работает, но может что-то обычно не так делают? Если что- поправьте.

И еще пара вопросов:

2) Если переименовать инсталлятор аськи, то при установке выдает окошко с надписью Чтобы продолжить установку, нужно закрыть программу ICQ. Сделать это сейчас? - жмем да и начинается установка. Но в этом окошке нет заголовка (Au3Info в поле title ничего не показывает). Как обратиться к такому окну?



Код:

Код: Выделить всё

; Автоустановка ICQ Lite
; Тестировалось на :
;           Windows XP Professional SP3 x86,
;           Windows Vista Home Basic x86,
;           Windows 7 Home Basic x86
$Title = "ICQ Lite - InstallShield Wizard"          ; Заголовок окна инсталлятора
$FirstText = "I accept the terms of the Agreements" ; Текст в первом окне (Принять лицензию)
$SecondText = "Custom Installation"                 ; Текст во втором окне (Настройки)
$ThirdText = "You successfully installed"           ; Текст в третьем окне (Готово...)
$Next = "[CLASS:Button; INSTANCE:1]"                ; Кнопка "Далее"
AutoItSetOption("WinTextMatchMode", 2) ; Идентификация окна по произвольному фрагменту
; Запуск инсталлятора
Run("install_icqlite.exe") ; Не переименовывайте инсталлятор!
; Ожидание первого окна инсталлятора (Принять лицензию)
WinWait ( $Title, $FirstText)
BlockInput(1) ; Блокировать клавиатуру и мышь
WinActivate ( $Title, "")
WinWaitActive ( $Title, "")
; Принять лицензию
ControlCommand ( $Title, "", "[CLASS:Button; INSTANCE:2]", "Check", "")
ControlClick ( $Title, "", $Next) ; Далее...
BlockInput(0) ; Разблокировать клавиатуру и мышь
; Ожидание второго окна инсталлятора (Настройки)
WinWait($Title, $SecondText)
BlockInput(1) ; Блокировать клавиатуру и мышь
WinActivate($Title, "")
WinWaitActive($Title, "")
; Настройка параметров
ControlCommand ( $Title, "", "[CLASS:Button; INSTANCE:7]", "Check", "")
; Не использовать поиск ICQ
ControlCommand ( $Title, "", "[CLASS:Button; INSTANCE:12]", "UnCheck", "")
; Не ставить поиск ICQ в качестве домашней страницы
ControlCommand ( $Title, "", "[CLASS:Button; INSTANCE:13]", "UnCheck", "")
; Не устанавливать инструментальную панель ICQ
ControlCommand ( $Title, "", "[CLASS:Button; INSTANCE:14]", "UnCheck", "")
ControlClick ( $Title, "", $Next) ; Далее...
BlockInput(0) ; Разблокировать клавиатуру и мышь
; Ожидание третьего окна инсталлятора (Готово...)
WinWait($Title, $ThirdText)
BlockInput(1) ; Блокировать клавиатуру и мышь
WinActivate($Title, "")
WinWaitActive($Title, "")
; Не запускать ICQ после установки
ControlCommand ( $Title, "", "[CLASS:Button; INSTANCE:17]", "UnCheck", "")
; Не помещать иконку ICQ в панель быстрого запуска
ControlCommand ( $Title, "", "[CLASS:Button; INSTANCE:18]", "UnCheck", "")
; Не помещать иконку ICQ на рабочий стол
ControlCommand ( $Title, "", "[CLASS:Button; INSTANCE:19]", "UnCheck", "")
ControlClick ( $Title, "", $Next) ; Завершение установки
BlockInput(0) ; Разблокировать клавиатуру и мышь
; Не загружать ICQ при входе в систему
RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "icq")
Аватара пользователя
beve

Re: Установка ICQ. Поправьте что не так.

Сообщение beve »

1).
Цитата seriych:



если запускаю из батника start /wait "" "AutoIt3.exe" "auto_install_icqlite.au3" , то все работает, а если компилирую, то доходит до первого окна установки и дальше не работает. Почему?
Установка ICQ. Поправьте что не так.




Если ты используеш в твоем скрипте такую ф-ию:

WinWaitActive ( $Title, ""), то нужно обязательно включить

Код:

Код: Выделить всё

BlockInput(1)
;тут твой код
BlockInput(0)

и так застраховаться от нежелательного действия пользователя (кликнул случайно именно в этот момент user, и активировалось другое окно, а скрипт будет ждать, когда же будет активно именно указанное в скрипте окно.)

2).
Цитата seriych:



Если переименовать инсталлятор аськи, то при установке выдает окошко с надписью Чтобы продолжить установку, нужно закрыть программу ICQ. Сделать это сейчас?
Установка ICQ. Поправьте что не так.




Это не зависит от переменования инсталятора, можеш переменовывать как угодно тебе (не забыв в скрипте это указать), а окошко это может быть выдано только если найден запущенный процес icq. Поэтоу советую в начале установки, проверять наличие запущенного процесса icq, и если таковый найден, то завершить его, и дальше по коду.

3).
Цитата seriych:



Вроде работает, но может что-то обычно не так делают? Если что- поправьте.
Установка ICQ. Поправьте что не так.




У меня, если твой скрипт скомпелировать в exe файл и запустить, после установки автоматом запускается icq, ибо эта функция:

Код:

Код: Выделить всё

; Не запускать ICQ после установки
ControlCommand ( $Title, "",60, "UnCheck", "") 

не отрабатывается, то есть чекбокс так и остается быть отмечен, а если так в этом месте:

Код:

Код: Выделить всё

; Не запускать ICQ после установки
ControlCommand ( $Title, "","[CLASS:Button; INSTANCE:17]", "UnCheck", "") 

то в результате все ОК. Больше замечаний нету, только одно: исходя из вышеописанного, контролы лучше указывать, примерно так: [CLASS:Button; INSTANCE:17], вместо 60, но это наверное просто случайность, но так, как я пробовал установку 2 раза, а случайность повторилась, то делай выводы.
Аватара пользователя
seriych

Re: Установка ICQ. Поправьте что не так.

Сообщение seriych »

beve,

Спасибо. Код поправил.

На счет переименовывания остаюсь при своем мнении: окошко выдается только если переименовать инсталлятор. Может процесс ICQ появляется только в этом случае, но как все-таки нажать там на кнопочку "Да"?

А как автоматически раскрасить код для форума? Или ты вручную делаешь?
Ответить

Вернуться в «AutoIt»