Ich habe alles soweit fertig, doch jetzt möchte ich eine Pause funktion einbauen, da ich aber noch eine while schleife brauchte, sind alle felder während die Zeit abläuft deaktiviert.
Jetzt zu der frage, wie kann ich die schleife "Stopen" ohne Hotkey also ich möchte das wenn man auf nen Button klickt, sich die schleife unterbricht.
Ich poste hier mal den gesammten code:
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
;Das Hauptfenster
#Region ### START Koda GUI section ### Form=c:\users\jan\desktop\autoit\shutdown timer\shutdown hauptfenster.kxf
$Hauptfenster = GUICreate("Shutdown By Jan25051", 269, 214, 337, 426)
$Start = GUICtrlCreateButton("Start", 80, 144, 187, 65, 0)
$Stop = GUICtrlCreateButton("Stop", 0, 144, 83, 41, 0)
$StopPasswort = GUICtrlCreateInput("Passwort", 0, 184, 81, 21) ;Das passwort muss ich ändern.
$StundenSchrift = GUICtrlCreateLabel("Stunden", 16, 80, 64, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Reference Sans Serif")
$Stunden = GUICtrlCreateLabel("00", 32, 104, 26, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Reference Sans Serif")
$MinutenSchrift = GUICtrlCreateLabel("Minuten", 96, 80, 62, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Reference Sans Serif")
$SekundenSchrift = GUICtrlCreateLabel("Sekunden", 176, 80, 75, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Reference Sans Serif")
$Minuten = GUICtrlCreateLabel("00", 112, 104, 26, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Reference Sans Serif")
$Sekunden = GUICtrlCreateLabel("00", 200, 104, 26, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Reference Sans Serif")
$ZeitButton = GUICtrlCreateButton("Zeit Ändern", 16, 16, 235, 41, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;Das Nebenfenster "Zeit Ändern"
#Region ### START Koda GUI section ### Form=C:\Users\Jan\Desktop\AutoIt\Shutdown Timer\Zeit Ändern Nebenfenster.kxf
$Zeitfenster = GUICreate("Zeit Ändern", 316, 124, 354, 237)
$StdPlus = GUICtrlCreateButton("Std.+1", 0, 40, 43, 41, 0)
$StdMinus = GUICtrlCreateButton("Std.-1", 48, 40, 43, 41, 0)
$MinPlus = GUICtrlCreateButton("Min.+1", 112, 40, 43, 41, 0)
$MinMinus = GUICtrlCreateButton("Min.-1", 160, 40, 43, 41, 0)
$SekPlus = GUICtrlCreateButton("Sek.+1", 224, 40, 43, 41, 0)
$SekMinus = GUICtrlCreateButton("Sek.-1", 272, 40, 43, 41, 0)
$Schliessen = GUICtrlCreateButton("Schließen", 120, 88, 75, 33, 0)
GUISetState(@SW_HIDE)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $ZeitButton
If GUICtrlRead($StopPasswort) = "Passwort" Then
GUISetState(@SW_SHOW, $Zeitfenster)
EndIf
Case $Schliessen
GUISetState(@SW_HIDE, $Zeitfenster)
;Zeit einstellen START
Case $StdPlus
GUICtrlSetData($Stunden, GUICtrlRead($Stunden) +1)
Case $StdMinus
GUICtrlSetData($Stunden, GUICtrlRead($Stunden) -1)
Case $MinPlus
GUICtrlSetData($Minuten, GUICtrlRead($Minuten) +1)
;Überprüfen ob die Zahl der Minuten 60 ist.
If GUICtrlRead($Minuten) = 60 Then
GUICtrlSetData($Stunden, Guictrlread($Stunden) +1)
GUICtrlSetData($Minuten,"00")
EndIf
Case $MinMinus
GUICtrlSetData($Minuten, GUICtrlRead($Minuten) -1)
;Überprüfen ob die Zahl der Minuten -60 ist.
If GUICtrlRead($Minuten) = -60 Then
GUICtrlSetData($Stunden, Guictrlread($Stunden) -1)
GUICtrlSetData($Minuten,"00")
EndIf
Case $SekPlus
GUICtrlSetData($Sekunden, GUICtrlRead($Sekunden) +1)
;Überprüfen ob die Zahl der Sekunden 60 ist.
If GUICtrlRead($Sekunden) = 60 Then
GUICtrlSetData($Minuten, Guictrlread($Minuten) +1)
GUICtrlSetData($Sekunden,"00")
EndIf
Case $SekMinus
GUICtrlSetData($Sekunden, GUICtrlRead($Sekunden) -1)
;Überprüfen ob die Zahl der Sekunden -60 ist.
If GUICtrlRead($Sekunden) = -60 Then
GUICtrlSetData($Minuten, Guictrlread($Minuten) -1)
GUICtrlSetData($Sekunden,"00")
EndIf
;Zeit einstellen ENDE
Case $Stop
If GUICtrlRead($StopPasswort) = "Passwort" Then
;HIER kommt die STOP funktion rein^^
EndIf
Case $Start
;Countdown START
While 1
Sekunden_runterzaehlen()
If Guictrlread($Sekunden) = "0" Then ;Überprüft ob die Sekunden auf 0 stehen.
If GUICtrlRead($Minuten) >= "0" Then ;Weil die Sekunden auf 0 stehen, wird überprüft ob die Minuten 1 oder höher als 1 ist.
GUICtrlSetData($Sekunden,"60") ;Weil die Minuten 1 oder höher als 1 waren,werden die Sekunden wieder auf 60 gestellt.
GUICtrlSetData($Minuten, Guictrlread($Minuten) -1) ;Die Minuten werden hier um eine reduziert.
If GUICtrlRead($Minuten) = "0" Then
If GUICtrlRead($Stunden) >= "1" Then
GUICtrlSetData($Minuten,"60")
GUICtrlSetData($Stunden, Guictrlread($Stunden) -1)
Else
GUICtrlSetData($Stunden,"00") ;Weil der Countdown abgelaufen ist, stellt sich die zeit auf 00 statt auf 0 ;D nur um es ansehnlicher zu machen.
GUICtrlSetData($Minuten,"00") ;Weil der Countdown abgelaufen ist, stellt sich die zeit auf 00 statt auf 0 ;D nur um es ansehnlicher zu machen.
GUICtrlSetData($Sekunden,"00") ;Weil der Countdown abgelaufen ist, stellt sich die zeit auf 00 statt auf 0 ;D nur um es ansehnlicher zu machen.
ExitLoop
EndIf
EndIf
EndIf
EndIf
WEnd
;Countdown ENDE
EndSwitch
WEnd
Func Sekunden_runterzaehlen()
For $i = Guictrlread($Sekunden) To 0 Step -1
GUICtrlSetData($Sekunden,$i)
Sleep(1000)
Next
EndFunc







