Ich habe mir mal die Zeit genommen und eine elegantere Lösung gebastelt. Mit AutoIT habe ich eine EXE erstellt. Die könnte in die Aufgabe eingebunden werden. Die Exe bietet eine Auswahl ob der PC ausgeschaltet werden soll oder nicht. Zusätzlich habe ich einen Time out eingebaut sollte 2 Minuten lang nichts passieren. Die EXE habe ich in eine Zip Datei gepackt. Zusätzlich unten noch den Quellcode angehängt.
Probier mal ob es bei dir funktioniert
Falls in der Exe auf "Ja" geklickt wird bleiben 60 Sekunden bis der Shutdown ausgeführt wird.
Bei klicken auf Nein wird nur eine Meldung angezeigt.
Wird keine Eingabe getätigt wird der PC nach 2 Minuten automatisch heruntergefahren.
Hier das Skript:
--------------------------------------------------------------------------------------------------
#include <Constants.au3>
#include <GUIConstantsEx.au3>
#include <Timers.au3>
_Main()
Func _Main()
Local $idYes, $idNo, $idExit, $iMsg
$hGUI = GUICreate("Herunterfahren", 230, 100)
GUICtrlCreateLabel("Wollen Sie den PC ausschalten?", 10, 10)
$idYes = GUICtrlCreateButton("Ja", 10, 50, 80, 30)
$idNo = GUICtrlCreateButton("Nein", 100, 50, 80, 30)
GUISetState() ; display the GUI
_Timer_SetTimer($hGUI, 120000, "TimeUP")
Do
$iMsg = GUIGetMsg()
Until $iMsg = $GUI_EVENT_CLOSE Or $iMsg = $idNo Or $iMsg = $idYes
Select
Case $iMsg = $idYes
SplashTextOn('Ja', 'Der PC wird in 60 Sekunden herunterfahren!', 200, 80)
Sleep(60000)
SplashOff()
Shutdown(5)
Case $iMsg = $idNo
SplashTextOn('Nein', 'Der PC wird nicht herunterfahren', 200, 80)
Sleep(3000)
SplashOff()
Case $iMsg = $GUI_EVENT_CLOSE
EndSelect
Exit
EndFunc
;==>_Main
Func TimeUp($a,$b,$c,$d)
MsgBox ( 0, "Timeout", "Der PC wird herunterfahren!" ,5)
Shutdown(5)
exit
EndFunc
--------------------------------------------------------------------------------------------------