Код:

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $sProgs = 'Setup1.exe=Прог1|Seup2.exe=Прог2|Seup3.exe=Прог3|Seup4.exe=Прог4|Seup5.exe=Прог5'
Global $iProgr = 0
Global Const $aProgs = StringSplit($sProgs, '|')
Global $anCheckBoxes[$aProgs[0]+1]
Global $aCheckedIcons[$aProgs[0]+1]
Global $aUnCheckedIcons[$aProgs[0]+1]
Global $iChecked_Counter = 0 ;Счетчик для отмеченных чекбоксов
Global $iProgress_Step = 100 / $aProgs[0] ;Шаг прогресса
Global $iProgress = 0 ;Счётчик прогресса
$Form1 = GUICreate("", 600, 500, -1, -1)
$iTop = 10
$iLeft = 20
For $i = 1 To $aProgs[0]
$aCheckedIcons[$i] = -5
$aUnCheckedIcons[$i] = -4
$anCheckBoxes[$i] = _GUICtrlCreateCheckboxEx(StringRegExpReplace($aProgs[$i], '^.*=', ''), $iLeft, $iTop, -1, 15, "shell32.dll", $aUnCheckedIcons[$i])
$iTop += 20
If $iTop > 450 Then
$iTop = 10
$iLeft += 100
EndIf
Next
$ProgressBar1 = GUICtrlCreateProgress(150, 150, 150, 20)
GUICtrlSetColor(-1, 32250)
$nStart = GUICtrlCreateButton("Выполнить", 10, 470, 80, 25)
$nButton1 = GUICtrlCreateButton("Отметить все", 100, 470, 80, 25)
$nButton2 = GUICtrlCreateButton("Отметить все", 190, 470, 80, 25)
GUIStartGroup()
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $nButton1
For $i = 1 to $aProgs[0]
$aArray=$anCheckBoxes[$i]
GUICtrlSetState ($aArray[1],$GUI_CHECKED)
Next
Case $nButton2
For $i = 1 to $aProgs[0]
$aArray=$anCheckBoxes[$i]
GUICtrlSetState ($aArray[1],$GUI_UNCHECKED)
Next
Case $nStart
For $i = 1 To $aProgs[0]
$iProgress += $iProgress_Step
$aCheckBox = $anCheckBoxes[$i]
If GUICtrlRead($aCheckBox[1]) = 1 Then
$iChecked_Counter += 1
GUICtrlSetImage($aCheckBox[0], "shell32.dll", $aCheckedIcons[$i])
GuiCtrlSetData($progressbar1, $iProgr)
$sProgName = StringRegExpReplace($aProgs[$i], '^.*=', '')
$sProgExe = StringRegExpReplace($aProgs[$i], '=.*$', '')
Call ("_MonitorOFF")
MsgBox(64, $sProgName, "sss", 3)
Else
GUICtrlSetImage($aCheckBox[0], "shell32.dll", $aUnCheckedIcons[$i])
EndIf
GUICtrlSetData($ProgressBar1, $iProgress)
Next
$iChecked_Counter = 0
EndSwitch
WEnd
Func _GUICtrlCreateCheckboxEx($sText, $iLeft, $iTop, $iWidth, $iHeight, $sIconFile="", $nIconIndex=0)
Local $aRetArr[2]
$aRetArr[0] = GUICtrlCreateIcon($sIconFile, $nIconIndex, $iLeft + 17, $iTop, 16, 16)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$aRetArr[1] = GUICtrlCreateCheckbox(" " & $sText & " ", $iLeft, $iTop, $iWidth, $iHeight, $WS_CLIPSIBLINGS)
Return $aRetArr
EndFunc