#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
;Start Base
$Form1 = GUICreate("Shutdown-O-Mat by MaddeX", 284, 296, 316, 212)
$bStart = GUICtrlCreateButton("Start", 184, 24, 75, 25, $WS_GROUP)
$bEnd = GUICtrlCreateButton("Beenden", 184, 64, 75, 25, $WS_GROUP)
$bInfo = GUICtrlCreateButton("Über", 184, 144, 75, 25, $WS_GROUP)
$rShutdown = GUICtrlCreateRadio("Herunterfahren", 16, 192, 113, 17)
GUICtrlSetState(-1,$GUI_Checked)
$rRestart = GUICtrlCreateRadio("Neu Starten", 16, 224, 113, 17)
$chForce = GUICtrlCreateCheckbox("Erzwingen?", 16, 256, 97, 17)
$tActual = GUICtrlCreateInput("Aktuelle Zeit", 32, 48, 121, 21, $ES_Readonly)
$tToAction = GUICtrlCreateInput("Zeit bis Aktion", 32, 88, 121, 21, $ES_Readonly)
$tSet = GUICtrlCreateInput("23:59:59", 32, 128, 121, 21)
$Group1 = GUICtrlCreateGroup("Zeiteinstellungen", 16, 16, 153, 161)
$chLock = GUICtrlCreateCheckbox("Lock", 40, 152, 105, 17, BitOR($BS_AUTOCHECKBOX,$BS_PUSHLIKE,$WS_TABSTOP))
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
;End Base
;Start Über
$Form2 = GUICreate("Über Shutdown-O-Mat by MaddeX", 347, 176, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 8, 8, 329, 129, BitOR($ES_CENTER,$ES_READONLY))
GUICtrlSetData(-1, StringFormat("Das Programm organisiert das automatische Herunterfahren\r\noder Neu Staten ihres PC"&Chr(39)&"s. Das Programm ist nicht ausgereift,\r\nder Programmierer (MaddeX) behält sich das Recht vor jederzeit\r\nänderungen an der Software vorzunehmen. Der Ersteller des \r\nProgramms übernimmt keine Haftung bei eventuellen Schäden\r\ndie am PC entstehen.\r\n\r\nCopyright by MaddeX /2010/"))
$bHide = GUICtrlCreateButton("Schliessen", 128, 144, 75, 25, $WS_GROUP)
GUISetState(@SW_Hide)
;End Über
AdlibRegister("time",1000)
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			aEnd()
		Case $bEnd
			aEnd()
		Case $bInfo
			GUISetState(@SW_SHOW,$Form2)
		Case $bHide
			GUISetState(@SW_HIDE,$Form2)
		Case $bStart
			AdlibRegister("Time2Action",1000)
			sleep(1000)
			GUICtrlSetData($bStart,"Re-Start")
		Case $chLock
			If GUICtrlRead($chLock) = 1 Then
			GUICtrlSetData($chLock,"Locked")
			GUICtrlSetState($tSet,$GUI_DISABLE)
			ElseIf GUICtrlRead($chLock) = 4 Then
			GUICtrlSetData($chLock,"Lock")
			GUICtrlSetState($tSet,$GUI_ENABLE)
			EndIf

	EndSwitch
WEnd
;Funktion Beenden
Func aEnd()
$dEnd=MsgBox(4,"Beenden?","Sind sie Sicher?")
	if $dEnd=6 Then
		Exit
	EndIf
EndFunc
;Funktion Beenden
;Funktion Zeit
Func time()
	$time=@HOUR&":"&@MIN&":"&@SEC
GUICtrlSetData($tActual, $time)
EndFunc
;Funktion Zeit
;Funktion Time2Action
Func Time2Action()
	$tSetn=Guictrlread($tSet)
	$tSetsplit=StringSplit($tSetn,":")
	If 		$tSetsplit[1]="" Then
			$tSetsplit[1]="0"
	ElseIf 	$tSetsplit[2]="" Then
			$tSetsplit[2]="0"
	ElseIf 	$tSetsplit[3]="" Then
			$tSetsplit[3]="0"
		EndIf
	$tSetHour=$tSetsplit[1]-@HOUR
		If $tSetHour <0 Then
			$tSetHour=$tSetHour+23
		EndIf
	$tSetMIN=$tSetsplit[2]-@MIN
		If $tSetMIN <0 Then
			$tSetHour=$tSetHour-1
			$tSetMIN=$tSetMIN+59
		EndIf
	$tSetSec=$tSetsplit[3]-@SEC
		If $tSetSec <0 Then
			$tSetMIN=$tSetMIN-1
			$tSetSec=$tSetSec+59
		EndIf
		If $tSetHour <10 Then
			$tSetHour="0"&$tSetHour
		EndIf
		If $tSetMIN <10 Then
			$tSetMIN="0"&$tSetMIN
		EndIf
		If $tSetSEC <10 Then
			$tSetSEC="0"&$tSetSEC
		EndIf
	GUICtrlSetData($tToAction,$tSetHour&":"&$tSetMIN&":"&$tSetSec)
	if $tSetHour="00" And $tSetMIN="00" And $tSetSec="00" Then
				action()
			EndIf
EndFunc
;Funktion Time2Action
;Funktion action
Func action()
	AdlibUnRegister("Time2Action")
	GUICtrlSetData($tToAction, "Shutdown")
	if GUICtrlRead($rShutdown)=1 Then
		$shutdown=1
	Else
		$shutdown=2
	EndIf
	If GUICtrlRead($chForce)=1 Then
		$shutdown=$shutdown+16
	EndIf
		Shutdown($shutdown)
EndFunc
