Код:

#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <AutoItConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Opt("TrayIconDebug", 1) ;0 - без сведений, 1 - отладочные сведения
Opt("TrayIconHide", 0) ;0 - отображать, 1 - скрыть
Opt("GUICloseOnESC", 1) ;0 = При нажатии ESC не высылать сообщение $GUI_EVENT_CLOSE.
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Global $Title = "TEST"
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
GUICreate($Title, 265, 355, -1, -1, $WS_SIZEBOX + $WS_SYSMENU + $WS_MINIMIZEBOX)
$Button2 = GUICtrlCreateButton("DELETE", 70, 260, 120, 22)
$Close = GUICtrlCreateButton("ESC", 70, 300, 120, 22)
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
$id1 = GUICtrlCreateCheckbox ("ID 1", 18, 50, -1, -1)
$id2 = GUICtrlCreateCheckbox ("ID 2", 18, 70, -1, -1)
$id3 = GUICtrlCreateCheckbox ("ID 3", 18, 90, -1, -1)
$id4 = GUICtrlCreateCheckbox ("ID 4", 18, 110, -1, -1)
$id5 = GUICtrlCreateCheckbox ("ID 5", 18, 130, -1, -1)
$id6 = GUICtrlCreateCheckbox ("ID 6", 18, 150, -1, -1)
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
GUISetState()
While 1
$iMsg = GUIGetMsg()
Switch $iMsg
Case $Close, $GUI_EVENT_CLOSE
Exit
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Case $Button2
GUISetState(@SW_DISABLE)
$Ask = MsgBox(256+32+4+262144, "", "TEST", 0)
If $Ask <> 6 Then
For $iID = $id1 To $id6
GUICtrlSetState($iID, BitOR($GUI_UNCHECKED, $GUI_ENABLE))
Next
GUISetState(@SW_ENABLE)
If Not WinActive($Title) Then WinActivate($Title)
Else
; 1. Тут проверка на присутствие отмеченных чекбоксов и если хотя бы один не отмечен (т.е. все пустые) то появляется диалог
MsgBox(4096+64, "", "UNCHECKED", 1) ;дальнейшее выполнение скрипта прекращается и преходит в режим ожидания.
; 2. Если присутствуют отмеченные чекбоксы (все или хотя бы один, то скрипт продолжает выполнять команды ниже
GUISetState(@SW_HIDE)
If _Checked($id1) Then MsgBox(4096+64, "", "id1", 1)
If _Checked($id2) Then MsgBox(4096+64, "", "id2", 1)
If _Checked($id3) Then MsgBox(4096+64, "", "id3", 1)
If _Checked($id4) Then MsgBox(4096+64, "", "id4", 1)
If _Checked($id5) Then MsgBox(4096+64, "", "id5", 1)
If _Checked($id6) Then MsgBox(4096+64, "", "id6", 1)
MsgBox(4096+64, "", "END", 1)
GUISetState(@SW_SHOW)
GUISetState(@SW_ENABLE)
For $iID = $id1 To $id6
GUICtrlSetState($iID, BitOR($GUI_UNCHECKED, $GUI_ENABLE))
Next
If Not WinActive($Title) Then WinActivate($Title)
EndIf
EndSwitch
WEnd
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Func _Checked($idControlID)
Return BitAND(GUICtrlRead($idControlID), $GUI_CHECKED) = $GUI_CHECKED
EndFunc ;==>_Checked