hallo,
habe folgende 2 probs (nachdem ich endlich mal wieder dazu gekommen bei, mein shutdown-script weiter zu entwickeln)
ich würde gern ein programm schreiben, dass ich per cmd bedienen kann, was den pc runterfährt (der ein oder andere hat schonmal nen thread dazu gelesen *g*)
nun habe ich eine case select anweisung, die wunderbar funktioniert. nachdem alle parameter geprüft wurden, wird eine funktion ausgeführt (timer) und danach soll der pc runter gefahren werden.
bevor aber der shutdown-befehl ausgeführt wird, springt das script aus der schleife wieder in die case select anweisung.
bastel ich jedoch eine msgbox anstelle der shutdown-anweisung, wird die msgbox ausgeführt. was ist hier falsch?
dazu kommt, dass $CmdLine[3] eine Zahl sein MUSS. aus testzwecken hab ich sie zZ auf 3 gesetzt, aber normalerweise würde ich was wie case IsNumber($CmdLine[3]) ... was aber leider nicht geht =/
wer kann mir helfen?
Spoiler anzeigen
#include <date.au3>
#include <Process.au3>
HotKeySet("{End}", "_kill")
[/autoit] [autoit][/autoit] [autoit]If $CmdLine[0] > 0 And $CmdLine[0] < 4 Then
Select
Case $CmdLine[1] = "-l" Or $CmdLine[1] = "-s" Or $CmdLine[1] = "-r"
$Funktion = $CmdLine[1]
Select
Case $CmdLine[2] = "-t" Or $CmdLine[2] = "-h" Or $CmdLine[2] = "-m" Or $CmdLine[2] = "-s"
$TimeZone = $CmdLine[2]
Select
Case $CmdLine[3] = 3
$Countdown = $CmdLine[3]
_countdown($Countdown)
Case Else
MsgBox(16, 'Fehler 4', "Parameter 3 muss eine Zahl sein")
EndSelect
Case Else
MsgBox(16, 'Fehler 3', "Falsche Parameter verwendet")
EndSelect
Case Else
MsgBox(16, 'Fehler 2', "Falsche Parameter verwendet")
EndSelect
Else
MsgBox(16, 'Fehler 1', "Kein oder zuviele Parameter angegeben")
EndIf
Func _countDown($Countdown)
If $CmdLine[2] = "-s" Then
Local $begin = TimerInit(), $diff
Do
$diff = TimerDiff($begin)
ToolTip("Noch " & Round(($Countdown*1000 -$diff)/1000) & " Sekunden",0,0,"Countdown")
Sleep(100)
Until $diff >= $Countdown*1000
If $CmdLine[1] = "-l" Then
_RunDOS('shutdown -l -f')
ElseIf $CmdLine[1] = "-s" Then
_RunDOS('shutdown -s -f')
ElseIf $CmdLine[1] = "-r" Then
_RunDOS('shutdown -r -f')
EndIf
EndIf
EndFunc
Func _kill()
Exit
EndFunc
PS: wieso postet der meinen code immer 2-3 mal?