Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Установка ICQ. Поправьте что не так.

Ответить
Настройки темы
Установка ICQ. Поправьте что не так.

Аватара для seriych

Старожил


Сообщения: 182
Благодарности: 42


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: seriych
Дата: 17-11-2009
Описание: Правка скрипта
Автоматическая установка 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")

Отправлено: 23:58, 13-11-2009

 

Аватара для beve

Старожил


Сообщения: 307
Благодарности: 137

Профиль | Отправить PM | Цитировать


1).
Цитата seriych:
если запускаю из батника start /wait "" "AutoIt3.exe" "auto_install_icqlite.au3" , то все работает, а если компилирую, то доходит до первого окна установки и дальше не работает. Почему? »
Если ты используеш в твоем скрипте такую ф-ию:
WinWaitActive ( $Title, ""), то нужно обязательно включить
Код: Выделить весь код
BlockInput(1)
;тут твой код
BlockInput(0)
и так застраховаться от нежелательного действия пользователя (кликнул случайно именно в этот момент user, и активировалось другое окно, а скрипт будет ждать, когда же будет активно именно указанное в скрипте окно.)
2).
Цитата seriych:
Если переименовать инсталлятор аськи, то при установке выдает окошко с надписью Чтобы продолжить установку, нужно закрыть программу ICQ. Сделать это сейчас? »
Это не зависит от переменования инсталятора, можеш переменовывать как угодно тебе (не забыв в скрипте это указать), а окошко это может быть выдано только если найден запущенный процес icq. Поэтоу советую в начале установки, проверять наличие запущенного процесса icq, и если таковый найден, то завершить его, и дальше по коду.
3).
Цитата seriych:
Вроде работает, но может что-то обычно не так делают? Если что- поправьте. »
У меня, если твой скрипт скомпелировать в exe файл и запустить, после установки автоматом запускается icq, ибо эта функция:
Код: Выделить весь код
; Не запускать ICQ после установки
ControlCommand ( $Title, "",60, "UnCheck", "") 
не отрабатывается, то есть чекбокс так и остается быть отмечен, а если так в этом месте:
Код: Выделить весь код
; Не запускать ICQ после установки
ControlCommand ( $Title, "","[CLASS:Button; INSTANCE:17]", "UnCheck", "") 
то в результате все ОК. Больше замечаний нету, только одно: исходя из вышеописанного, контролы лучше указывать, примерно так: [CLASS:Button; INSTANCE:17], вместо 60, но это наверное просто случайность, но так, как я пробовал установку 2 раза, а случайность повторилась, то делай выводы.

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:29, 14-11-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для seriych

Старожил


Сообщения: 182
Благодарности: 42

Профиль | Отправить PM | Цитировать


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

-------
* Книгой можно не только стаканчик с лапшой накрывать. ©


Отправлено: 20:43, 16-11-2009 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Установка ICQ. Поправьте что не так.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Delphi - Не могу понять что не так? ShadowMas Программирование и базы данных 4 12-10-2008 00:21
Так что же выбрать? byka Microsoft Windows Vista 2 13-03-2007 11:04
что-то не так с CD-RW Guest Хочу все знать 16 21-05-2004 13:41
Что-то не так с сетью Guest Сетевые технологии 6 19-01-2004 17:02
Что не так? Guest Программирование и базы данных 1 10-03-2003 21:43




 
Переход