Что нового

[Автоматизация] Авто установка софта (По типу установки Windows 7)

vvarvvar

Новичок
Сообщения
5
Репутация
0
Версия Autoit: 3.3.6.1

Описание: Скрипт автоматической установки софта (Post installer)

Всем привет! Я только начинаю изучать Autoit, подскажите пожайлуста как должен выглядеть скрипт автоустановки софта по типу установки Windows 7. Т.е. меня интересует выбор програм чекбоксами, отображение активной установки жирным шрифтом. Иконка по завершнии установки (галочка). Если можно снабдить коментами очень нужно. Всем ответившим по теме огромный респект.

PS Сайт просто супер!!!
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Re: [Автоматизация] Авто установка софта (Стиль Win 7)

если тебе все равно какого софта - то читай мануалы по установщикам. вроде все они поддерживают встроенные сценарии
 
Автор
V

vvarvvar

Новичок
Сообщения
5
Репутация
0
Re: [Автоматизация] Авто установка софта (Стиль Win 7)

Меня интересует скрипт GUI по типу стандандартного установщика Win7. Т.е. выбор программ по чекбоксам, кнопка выполнить, далее окно обновляется и в нем список выбраных програм, далее подсветка активной установки жирным шрифтом и если возможно прогресбаром хотя бы из точек (...) чтобы видеть что установка активна и не потеряла фокус. иконка (галочка) по завершению установки. Вот извените что так все кучей свалил.

PS Интересует скрипт самого GUI... вот.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: [Автоматизация] Авто установка софта (Стиль Win 7)

и еще уточнить что за софт
 
Автор
V

vvarvvar

Новичок
Сообщения
5
Репутация
0
Да в приципе не имеет значения какой софт, ну к примеру sfx архивы.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626

axlwor

Скриптер
Сообщения
657
Репутация
147
читаем справку для архиватора. раздел sfx.
ps. Хотя.. по описанию задачи - ты просишь написать еще один инсталлер, но я бы порекомендовал использовать уже готовые или (если действия очень простые) sfx со скриптами в архиваторах
 

sss

Продвинутый
Сообщения
332
Репутация
96
Можно для каждой проги (только не очень большой и серьезной, наподобие MS Office и NOD32) сделать тихую установку и потом сделать скрипт-запускатор. Вот тема как сделать тихую установку.
А если с sfx - тогда еще проще. Извлекаешь файлы из sfx, архивируешь в zip (чтобы был один FileInstall) и потом библиотекой zip.au3 на целевом компе извлекаешь.
 
Автор
V

vvarvvar

Новичок
Сообщения
5
Репутация
0
Млин вы меня не поняли :-\ Мне нужен скрипт gui самого окошка, в котором на инсталер(ы) просто пустая ссылка.
 

beliy

Продвинутый
Сообщения
372
Репутация
72
если не принципиально на autoit, то можешь глянуть в сторону http://www.wpiw.net/ - большинство автоустановочных дисков делается именно на нем.
 
Автор
V

vvarvvar

Новичок
Сообщения
5
Репутация
0
Вот...
2Beliy про Wpi wizard знаю, хочется именно на Autoit.
 

Centrinar

Новичок
Сообщения
100
Репутация
1
Зачем изобретать велосипед!? Есть готовые оболочки, пользуйся ими
 

axlwor

Скриптер
Сообщения
657
Репутация
147
OffTopic:
Тут все новички изобретают велосипед. Считается что без знаний в нужной области будет легко, а уж autoit вообще не стоит изучать - там все легко :rofl:



Открывай AutoIt Window Info и хелп
Код:
WinWait()
ControlClick ()
 

sss

Продвинутый
Сообщения
332
Репутация
96
Насколько я понял, тебе нужна оболочка к установочникам.Вот, примерно похож с твоим на скрине. У меня не Win7, поэтому такого интерфейса не жди. Вместо иконки в конце сделал выход и окошко типа "ура я все сделал". В Progress особо не шарю, поэтому будут дергаться. Сделал 2 этапа - распаковка и установка, оба запихнул в функции, мне так удобнее.
Код:
$i1=1
$i2=1
$i3=0
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 482, 208, 222, 272)
$Group1 = GUICtrlCreateGroup("Group1", 8, 8, 177, 97)
$Checkbox1 = GUICtrlCreateCheckbox("Setup1", 16, 32, 97, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Setup2", 16, 56, 97, 17)
$Checkbox3 = GUICtrlCreateCheckbox("Setup3", 16, 80, 97, 17)
$Checkbox4 = GUICtrlCreateCheckbox("Setup4", 120, 32, 60, 17)
$Checkbox5 = GUICtrlCreateCheckbox("Setup5", 120, 56, 60, 17)
$Checkbox6 = GUICtrlCreateCheckbox("Setup6", 120, 80, 60, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Выполнить", 192, 16, 283, 89, $WS_GROUP)
$Label2 = GUICtrlCreateLabel("Установка...", 8, 144, 92, 17)
$Progress2 = GUICtrlCreateProgress(112, 120, 134, 17)
$Label1 = GUICtrlCreateLabel("", 264, 144, 206, 17)
$Label3 = GUICtrlCreateLabel("Распаковка...", 8, 120, 74, 17)
$Progress1 = GUICtrlCreateProgress(112, 144, 134, 17)
$Label4 = GUICtrlCreateLabel("ОК", 264, 120, 19, 17)
$Button2 = GUICtrlCreateButton("Выход", 8, 176, 75, 25, $WS_GROUP)
$Label5 = GUICtrlCreateLabel("Переделаешь сам", 96, 184, 97, 17)


GUICtrlSetData($Progress1,0)
GUICtrlSetData($Progress2,0)
GUICtrlSetState($Label3,$GUI_HIDE)
GUICtrlSetState($Label2,$GUI_HIDE)
GUICtrlSetState($Label1,$GUI_HIDE)
GUICtrlSetState($Label4,$GUI_HIDE)
GUICtrlSetState($Progress1,$GUI_HIDE)
GUICtrlSetState($Progress2,$GUI_HIDE)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		case $Button2
			Exit
		case $Button1

			$check1=GuictrlRead($Checkbox1)
			$check2=GuictrlRead($Checkbox2)
			$check3=GuictrlRead($Checkbox3)
			$check4=GuictrlRead($Checkbox4)
			$check5=GuictrlRead($Checkbox5)
			$check6=GuictrlRead($Checkbox6)

			GUICtrlSetState($Progress2,$GUI_SHOW)
			GUICtrlSetState($Label3,$GUI_SHOW)
			If $check1=$GUI_CHECKED then
			    _Unpack(1,1)
			Else
				_Unpack(1,0)
			EndIf

			If $check2=$GUI_CHECKED then
			    _Unpack(2,1)
			Else
				_Unpack(2,0)
			EndIf

			If $check3=$GUI_CHECKED then
			    _Unpack(3,1)
			Else
				_Unpack(3,0)
			EndIf

			If $check4=$GUI_CHECKED then
			    _Unpack(4,1)
			Else
				_Unpack(4,0)
			EndIf

			If $check5=$GUI_CHECKED then
			    _Unpack(5,1)
			Else
				_Unpack(5,0)
			EndIf

			If $check6=$GUI_CHECKED then
			    _Unpack(6,1)
			Else
				_Unpack(6,0)
			EndIf

			GUICtrlSetData($Progress2,100)
			GUICtrlSetState($Label4,$GUI_SHOW)
			GUICtrlSetState($Label2,$GUI_SHOW)
			GUICtrlSetState($Label1,$GUI_SHOW)
			GUICtrlSetState($Progress1,$GUI_SHOW)

			If $check1=$GUI_CHECKED then
			    _Install(1,1)
			Else
				_Install(1,0)
			EndIf

			If $check2=$GUI_CHECKED then
			    _Install(2,1)
			Else
				_Install(2,0)
			EndIf

			If $check3=$GUI_CHECKED then
			    _Install(3,1)
			Else
				_Install(3,0)
			EndIf

			If $check4=$GUI_CHECKED then
			    _Install(4,1)
			Else
				_Install(4,0)
			EndIf

			If $check5=$GUI_CHECKED then
			    _Install(5,1)
			Else
				_Install(5,0)
			EndIf

			If $check6=$GUI_CHECKED then
			    _Install(6,1)
			Else
				_Install(6,0)
			EndIf

			GUICtrlSetData($Progress1,100)

            GUIDelete()

			MsgBox(0,'','Ура, только что я установил ' & $i3 & ' программ в вашу систему! Have Fun!')
			Exit

	EndSwitch
WEnd

Func _Unpack($flag,$valid)
	Switch $flag
		case 1
			if $valid=1 Then
			    ; распаковка Setup1
				Sleep(1000) ; для наглядности
			EndIf
			GUICtrlSetData($Progress2,16*$i1)
			$i1+=1
		case 2
			if $valid=1 Then
			    ; распаковка Setup2
				Sleep(1000) ; для наглядности
			EndIf
			GUICtrlSetData($Progress2,16*$i1)
			$i1+=1
		case 3
			if $valid=1 Then
			    ; распаковка Setup3
				Sleep(1000) ; для наглядности
			EndIf
			GUICtrlSetData($Progress2,16*$i1)
			$i1+=1
		case 4
			if $valid=1 Then
			    ; распаковка Setup4
				Sleep(1000) ; для наглядности
			EndIf
			GUICtrlSetData($Progress2,16*$i1)
			$i1+=1
		case 5
			if $valid=1 Then
			    ; распаковка Setup5
				Sleep(1000) ; для наглядности
			EndIf
			GUICtrlSetData($Progress2,16*$i1)
			$i1+=1
		case 6
			if $valid=1 Then
			    ; распаковка Setup6
				Sleep(1000) ; для наглядности
			EndIf
			GUICtrlSetData($Progress2,16*$i1)
			$i1+=1
	EndSwitch
EndFunc

Func _Install($flag,$valid)
	Switch $flag
		case 1
			if $valid=1 Then
				GUICtrlSetData($Label1,'Сейчас ставлю: Setup1')
			    ; установка Setup1
				Sleep(1000) ; для наглядности
				$i3+=1
			EndIf
			GUICtrlSetData($Progress1,16*$i2)
			$i2+=1
		case 2
			if $valid=1 Then
				GUICtrlSetData($Label1,'Сейчас ставлю: Setup2')
			    ; установка Setup2
				Sleep(1000) ; для наглядности
				$i3+=1
			EndIf
			GUICtrlSetData($Progress1,16*$i2)
			$i2+=1
		case 3
			if $valid=1 Then
				GUICtrlSetData($Label1,'Сейчас ставлю: Setup3')
			    ; установка Setup3
				Sleep(1000) ; для наглядности
				$i3+=1
			EndIf
			GUICtrlSetData($Progress1,16*$i2)
			$i2+=1
		case 4
			if $valid=1 Then
				GUICtrlSetData($Label1,'Сейчас ставлю: Setup4')
			    ; установка Setup4
				Sleep(1000) ; для наглядности
				$i3+=1
			EndIf
			GUICtrlSetData($Progress1,16*$i2)
			$i2+=1
		case 5
			if $valid=1 Then
				GUICtrlSetData($Label1,'Сейчас ставлю: Setup5')
			    ; установка Setup5
				Sleep(1000) ; для наглядности
				$i3+=1
			EndIf
			GUICtrlSetData($Progress1,16*$i2)
			$i2+=1
		case 6
			if $valid=1 Then
				GUICtrlSetData($Label1,'Сейчас ставлю: Setup6')
			    ; установка Setup6
				Sleep(1000) ; для наглядности
				$i3+=1
			EndIf
			GUICtrlSetData($Progress1,16*$i2)
			$i2+=1
	EndSwitch
EndFunc
 
Верх