$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