;~ $Code = 1 ; Завершить работу операционной системы
;~ $Code = 6 ; принудительная перезагрузка
;~ $Code = 0 ; Завершение сеанса пользователя
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Global $Code
GUICreate("PcSwitch", 160, 185, 192, 124)
$Reset = GUICtrlCreateButton("Перезагрузка", 16, 64, 123, 25)
$Exit = GUICtrlCreateButton("Выключить", 17, 99, 123, 25)
$System = GUICtrlCreateButton("Выйти из системы", 15, 135, 123, 25)
$Delay = GUICtrlCreateInput("0", 88, 24, 49, 21, $ES_NUMBER)
GUICtrlCreateLabel("Таймер (Сек)", 16, 27, 71, 17)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Reset
$Code = 6
AdlibRegister("_Reset", GUICtrlRead($Delay) * 1000)
Case $System
$Code = 0
AdlibRegister("_Reset", GUICtrlRead($Delay) * 1000)
Case $Exit
$Code = 1
AdlibRegister("_Reset", GUICtrlRead($Delay) * 1000)
EndSwitch
WEnd
Func _Reset()
If GUICtrlRead($Delay) > 0 Then
GUISetState(@SW_HIDE) ; Скрыть окно программы
Shutdown($Code)
AdlibUnRegister("_Reset")
Else
MsgBox(0,"","Не задано время паузы")
AdlibUnRegister("_Reset")
EndIf
EndFunc