Показать полную графическую версию : [решено] Автоматическая установка Alcohol 120% 2.0.1.1820
Помогите пожалуйста: нужно заставить снять галки с нескольких компонентов.При запуске, моменты выбора компонентов просто проскакиваются.Смотрел аналоничные темы, но там через реестр выбор компонентов, а мне нужно стандартными средствами.Вот мой код, но он почему-то не убирает галочки:
;Заголовок окна 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.
Предупреждение за нарушение правил форума, пункт 2.7 (http://forum.oszone.net/rules.html#2.7):
В заголовке темы обязательно обозначайте название предмета, которого касается вопрос, а в теле сообщения максимально подробно опишите проблему (приведите аппаратную/программную конфигурацию, а также изложите ситуацию, в которой возникает проблема). Темы с несодержательными или слишком общими заголовками будут закрываться или переноситься в раздел "Зона тестирования" в зависимости от политики конкретного форума. Подробнее о принципах создания тем читайте в этом документе (http://forum.oszone.net/faq.php?faq=vb_read_and_post#faq_thread) и Правилах форумов.
Переименуйте пожалуйста тему.
Lubitel Softa
12-08-2010, 11:20
Приведу свой скрипт, работает отлично... уж на сколько машин им был поставлен Алкоголь. Если что-то не правильно у меня в скрипте (что-то лишнее, чего-то не хватает и т.д.), прокомментируйте, с удовольствием выслушаю мнение мастеров 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 секунду сделал для слабых компов, чтобы то барахло успевало переваривать.
Вот мой код, но он почему-то не убирает галочки »
Не убирает или не ставит? там используется Check на элементе Button, и то что в списке как я понимаю это ListView?
прокомментируйте, с удовольствием выслушаю »
Ну во-первых код желательно заключить в соответствующие теги.
А по скрипту, ну я бы не стал использовать MouseClick'ки, ставить паузы тоже не очень надёжно, правильнее отлавливать следующие окна.
madmasles
12-08-2010, 17:01
Creat0R, там используется Check на элементе Button »Сталкивался с этим. Например, у Ad Muncher`a на скриншоте обведенные контролы имеют [CLASS:Button; INSTANCE:55], [CLASS:Button; INSTANCE:56] ,[CLASS:Button; INSTANCE:57], а обрабатываются они как Checkbox`ы.
обрабатываются они как Checkbox`ы. »
Не ну это понятно, стандартный CheckBox всегда имеет класс Button, но я не об этом, я к тому что видимо в списке это не стандартные CheckBox'ы, скорее всего это элементы ListView.
madmasles
12-08-2010, 19:46
скорее всего это элементы ListView »
Это SysTreeView. Никогда с ними не общался, может коряво написано, но работает (1-ое окно, 1.png):#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <GuiTreeView.au3>
Dim (http://www.autoitscript.com/autoit3/docs/keywords.htm#Dim) $aChecks[6][2] = [['Языковые файлы', 0],['Служба iSCSI', 0],['Мастер A.C.I.D.', 0], _
['Анализатор типа данных (DTA)', 0],['Онлайн-руководство', 0],['Ярлык на рабочем столе', 0]]
;...
$hTreeView = ControlGetHandle (http://www.autoitscript.com/autoit3/docs/functions/ControlGetHandle.htm)('Alcohol 120% 2.0.1.1820', '', '[CLASS:SysTreeView32; INSTANCE:1]')
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 0 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) 5
$aChecks[$i][1] = _GUICtrlTreeView_FindItem (http://dundats.mvps.org/help/html/libfunctions/_guictrltreeview_finditem.htm)($hTreeView, $aChecks[$i][0])
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
;меняем Check на UnCheck и наоборот:
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 0 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) 5
Sleep (http://www.autoitscript.com/autoit3/docs/functions/Sleep.htm)(1000)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) _GUICtrlTreeView_GetChecked (http://dundats.mvps.org/help/html/libfunctions/_guictrltreeview_getchecked.htm)($hTreeView, $aChecks[$i][1]) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
_GUICtrlTreeView_SetChecked (http://dundats.mvps.org/help/html/libfunctions/_guictrltreeview_setchecked.htm)($hTreeView, $aChecks[$i][1], False (http://www.autoitscript.com/autoit3/docs/keywords.htm#False))
Else (http://www.autoitscript.com/autoit3/docs/keywords.htm#Else)
_GUICtrlTreeView_SetChecked (http://dundats.mvps.org/help/html/libfunctions/_guictrltreeview_setchecked.htm)($hTreeView, $aChecks[$i][1])
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
;возвращаем обратно:
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 0 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) 5
Sleep (http://www.autoitscript.com/autoit3/docs/functions/Sleep.htm)(1000)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) _GUICtrlTreeView_GetChecked (http://dundats.mvps.org/help/html/libfunctions/_guictrltreeview_getchecked.htm)($hTreeView, $aChecks[$i][1]) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
_GUICtrlTreeView_SetChecked (http://dundats.mvps.org/help/html/libfunctions/_guictrltreeview_setchecked.htm)($hTreeView, $aChecks[$i][1], False (http://www.autoitscript.com/autoit3/docs/keywords.htm#False))
Else (http://www.autoitscript.com/autoit3/docs/keywords.htm#Else)
_GUICtrlTreeView_SetChecked (http://dundats.mvps.org/help/html/libfunctions/_guictrltreeview_setchecked.htm)($hTreeView, $aChecks[$i][1])
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
;...
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.