Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Автоматическая установка Alcohol 120% 2.0.1.1820 (http://forum.oszone.net/showthread.php?t=182705)

tupica 11-08-2010 23:01 1471805

Автоматическая установка Alcohol 120% 2.0.1.1820
 
Вложений: 3
Помогите пожалуйста: нужно заставить снять галки с нескольких компонентов.При запуске, моменты выбора компонентов просто проскакиваются.Смотрел аналоничные темы, но там через реестр выбор компонентов, а мне нужно стандартными средствами.Вот мой код, но он почему-то не убирает галочки:
Код:

;Заголовок окна Alcohol
$Title='Alcohol 120% 2.0.1.1820'
;Файл инсталлятор
$SetupFile='alcohol120.exe'
;Пусть к папке с программой (стандартный)
$InstallPath=@ProgramFilesDir & '\Alcohol Soft\Alcohol 120'
======================= Скрипт ====================
;Выбор компонентов
WinWait($Title)
WinActivate($Title)
WinWaitActive($Title)

;Выбор устанавливаемых компонентов.
ControlCommand($Title,'','Языковые файлы','Check')
ControlCommand($Title,'','Служба iSCSI','Check','')
ControlCommand($Title,'','Мастер A.C.I.D.','Check','')
ControlCommand($Title,'','Анализатор типа данных (DTA)','Check','')
ControlCommand($Title,'','Онлайн-руководство','Check','')
ControlCommand($Title,'','Ярлык на рабочем столе','Check','')
;Не происходит выбор
ControlClick($Title,'','Button2')

Вот класс окна - [CLASS:SysTreeView32; INSTANCE:1] (скрин 1)
И в конце тоже самое (скрин 2) :
Код:

;Финальная страница
WinWait($Title)
WinActivate($Title)
WinWaitActive($Title)

ControlCommand($Title,'','Добавить виртуальный накопитель Alcohol','Check','')
ControlCommand($Title,'','Запустить Alcohol 120%','Check','')

Но здесь галочки отображаются через Au3Info как кнопки(скрин 3)
В общем помогите с выбором компонентов и снятием загрузки Alcohol.

Creat0R 11-08-2010 23:13 1471812

Предупреждение за нарушение правил форума, пункт 2.7:

Цитата:

В заголовке темы обязательно обозначайте название предмета, которого касается вопрос, а в теле сообщения максимально подробно опишите проблему (приведите аппаратную/программную конфигурацию, а также изложите ситуацию, в которой возникает проблема). Темы с несодержательными или слишком общими заголовками будут закрываться или переноситься в раздел "Зона тестирования" в зависимости от политики конкретного форума. Подробнее о принципах создания тем читайте в этом документе и Правилах форумов.
Переименуйте пожалуйста тему.

Lubitel Softa 12-08-2010 11:20 1472021

Приведу свой скрипт, работает отлично... уж на сколько машин им был поставлен Алкоголь. Если что-то не правильно у меня в скрипте (что-то лишнее, чего-то не хватает и т.д.), прокомментируйте, с удовольствием выслушаю мнение мастеров AutoIt.

читать дальше »
Код:

;Запрос админских прав доступа
#RequireAdmin

;Привязка мыши к клиентской части окна
AutoItSetOption ("MouseCoordMode", 2)

;Предотвращение множественного запуска скрипта
If WinExists (@ScriptName) Then Exit
AutoItWinSetTitle (@ScriptName)

Global $file = @ScriptDir & "\Alcohol120_retail_2.0.1.1820.exe"


;Прописывание языка программы установки
RegWrite ('HKEY_LOCAL_MACHINE\SOFTWARE\Alcohol Soft\Alcohol 120%')
Sleep (1000)
RegWrite ('HKEY_LOCAL_MACHINE\SOFTWARE\Alcohol Soft\Alcohol 120%', 'Installer Language', "REG_SZ", '1049')

;Установка программы
Run ($file)

WinWait ("Alcohol 120% 2.0.1.1820", "приветствует")
If Not WinActive ("Alcohol 120% 2.0.1.1820", "приветствует") Then
        WinActivate ("Alcohol 120% 2.0.1.1820", "приветствует")
EndIf
Sleep (1000)
ControlClick ("Alcohol 120% 2.0.1.1820", "приветствует", "&Далее >")

WinWait ("Alcohol 120% 2.0.1.1820 ", "Лицензионное")
If Not WinActive ("Alcohol 120% 2.0.1.1820 ", "Лицензионное") Then
        WinActivate ("Alcohol 120% 2.0.1.1820 ", "Лицензионное")
EndIf
Sleep (1000)
ControlClick ("Alcohol 120% 2.0.1.1820 ", "Лицензионное", "Принима&ю")

WinWait ("Alcohol 120% 2.0.1.1820 ", "Компоненты")
If Not WinActive ("Alcohol 120% 2.0.1.1820 ", "Компоненты") Then
        WinActivate ("Alcohol 120% 2.0.1.1820 ", "Компоненты")
EndIf
Sleep (1000)
MouseClick ("left", 187, 177, 1)
Sleep (1000)
ControlClick ("Alcohol 120% 2.0.1.1820 ", "Компоненты", "&Далее >")

WinWait ("Alcohol 120% 2.0.1.1820 ", "Выбор")
If Not WinActive ("Alcohol 120% 2.0.1.1820 ", "Выбор") Then
        WinActivate ("Alcohol 120% 2.0.1.1820 ", "Выбор")
EndIf
Sleep (1000)
ControlClick ("Alcohol 120% 2.0.1.1820 ", "Выбор", "&Установить")

WinWait ("Alcohol 120% 2.0.1.1820 ", "Завершение")
If Not WinActive ("Alcohol 120% 2.0.1.1820 ", "Завершение") Then
        WinActivate ("Alcohol 120% 2.0.1.1820 ", "Завершение")
EndIf
Sleep (1000)
ControlCommand ("Alcohol 120% 2.0.1.1820 ", "Завершение", "&Запустить Alcohol 120%", "UnCheck")
Sleep (1000)
ControlCommand ("Alcohol 120% 2.0.1.1820 ", "Завершение", "Добавить виртуальный накопитель Alcohol", "UnCheck")
Sleep (1000)
ControlClick ("Alcohol 120% 2.0.1.1820 ", "Завершение", "&Готово")

ProcessWaitClose ("Alcohol120_retail_2.0.1.1820.exe")

...... дальше тут запуск кейгена от БетаМастер, я это пропускаю.


У меня только снимается галочка с "Служба iSCSI" ибо мне не нужно расшаривать виртуальный дисковод по сети (по-моему это вообще никому не нужно). Задержку в 1 секунду сделал для слабых компов, чтобы то барахло успевало переваривать.

Creat0R 12-08-2010 16:10 1472254

Цитата:

Цитата tupica
Вот мой код, но он почему-то не убирает галочки »

Не убирает или не ставит? там используется Check на элементе Button, и то что в списке как я понимаю это ListView?

Цитата:

Цитата Lubitel Softa
прокомментируйте, с удовольствием выслушаю »

Ну во-первых код желательно заключить в соответствующие теги.
А по скрипту, ну я бы не стал использовать MouseClick'ки, ставить паузы тоже не очень надёжно, правильнее отлавливать следующие окна.

madmasles 12-08-2010 17:01 1472289

Creat0R,
Цитата:

Цитата Creat0R
там используется Check на элементе Button »

Сталкивался с этим. Например, у Ad Muncher`a на скриншоте обведенные контролы имеют [CLASS:Button; INSTANCE:55], [CLASS:Button; INSTANCE:56] ,[CLASS:Button; INSTANCE:57], а обрабатываются они как Checkbox`ы.

Creat0R 12-08-2010 17:32 1472308

Цитата:

Цитата madmasles
обрабатываются они как Checkbox`ы. »

Не ну это понятно, стандартный CheckBox всегда имеет класс Button, но я не об этом, я к тому что видимо в списке это не стандартные CheckBox'ы, скорее всего это элементы ListView.

madmasles 12-08-2010 19:46 1472397

Цитата:

Цитата Creat0R
скорее всего это элементы ListView »

Это SysTreeView. Никогда с ними не общался, может коряво написано, но работает (1-ое окно, 1.png):
Код:

#include <GuiTreeView.au3>

Dim $aChecks[6][2] = [['Языковые файлы', 0],['Служба iSCSI', 0],['Мастер A.C.I.D.', 0], _
        ['Анализатор типа данных (DTA)', 0],['Онлайн-руководство', 0],['Ярлык на рабочем столе', 0]]
;...
$hTreeView = ControlGetHandle('Alcohol 120% 2.0.1.1820', '', '[CLASS:SysTreeView32; INSTANCE:1]')

For $i = 0 To 5
    $aChecks[$i][1] = _GUICtrlTreeView_FindItem($hTreeView, $aChecks[$i][0])
Next
;меняем Check на UnCheck и наоборот:
For $i = 0 To 5
    Sleep(1000)
    If _GUICtrlTreeView_GetChecked($hTreeView, $aChecks[$i][1]) Then
        _GUICtrlTreeView_SetChecked($hTreeView, $aChecks[$i][1], False)
    Else
        _GUICtrlTreeView_SetChecked($hTreeView, $aChecks[$i][1])
    EndIf
Next
;возвращаем обратно:
For $i = 0 To 5
    Sleep(1000)
    If _GUICtrlTreeView_GetChecked($hTreeView, $aChecks[$i][1]) Then
        _GUICtrlTreeView_SetChecked($hTreeView, $aChecks[$i][1], False)
    Else
        _GUICtrlTreeView_SetChecked($hTreeView, $aChecks[$i][1])
    EndIf
Next
;...



Время: 01:12.

Время: 01:12.
© OSzone.net 2001-