ich würde jeweils die restzeit in sekunden ausrechnen, und das denn ausgeben...
Code:
Dim $timer, $go=False
GUICreate("Form1", 274, 159, -1, -1)
GUICtrlCreateLabel("Pc herunterfahren :", 16, 20, 95, 17)
$Radio1 = GUICtrlCreateRadio("in", 120, 8, 113, 17)
GUICtrlSetState(-1, 1)
$Radio2 = GUICtrlCreateRadio("um,", 120, 32, 113, 17)
$Combo1 = GUICtrlCreateCombo("Stunde", 8, 56, 81, 25)
GUICtrlSetData(-1, BuildComboNumber(0,24))
$Combo2 = GUICtrlCreateCombo("Minuten", 96, 56, 81, 25)
GUICtrlSetData(-1, BuildComboNumber(0,60))
$Combo3 = GUICtrlCreateCombo("Sekunde", 184, 56, 81, 25)
GUICtrlSetData(-1, BuildComboNumber(0,60))
$Input1 = GUICtrlCreateInput("", 8, 88, 257, 21, 0x880)
$Button1 = GUICtrlCreateButton("Start/Stop", 8, 120, 259, 25)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $Button1
$go = Not $go
$timer = TimerInit()
Case Else
If $go Then
$std_read = GUICtrlRead($Combo1)
If $std_read = 'Stunden' Then $std_read=0
$min_read = GUICtrlRead($Combo2)
If $min_read = 'Minuten' Then $min_read=0
$sek_read = GUICtrlRead($Combo3)
If $sek_read = 'Sekunden' Then $sek_read=0
If BitAND(GUICtrlRead($Radio1),1) Then
$left = (($std_read*60*60*1000 + $min_read*60*1000 + $sek_read)*1000 - TimerDiff($timer))/1000
Else
$left = ($std_read*60*60*1000 + $min_read*60*1000 + $sek_read) - (@HOUR*60*60 + @MIN*60 + @SEC)
If $left < 0 Then $left += 24*60*60
EndIf
$std = Int($left / 60 / 60)
$min = Int($left / 60 - $std * 60)
$sek = Int($left - $min*60 - $std*60*60)
If $std>0 Then
GUICtrlSetData($Input1, $std&' Stunden '&$min&' Minuten '&$sek& ' Sekunden')
ElseIf $min>0 Then
GUICtrlSetData($Input1, $min&' Minuten '&$sek& ' Sekunden')
Else
GUICtrlSetData($Input1, $sek& ' Sekunden')
EndIf
If $left <= 0 Then
$go = Not $go
GUICtrlSetData($Input1, 'Good Bye')
;~ Shutdown(1)
EndIf
EndIf
EndSwitch
WEnd
Func BuildComboNumber($von,$bis)
Local $i, $return
For $i=$von To $bis
$return&=$i&'|'
Next
Return StringTrimRight($return,1)
EndFunc