Gibt es eine einfache Möglichkeit ein Script von vorne Anfangen zu lassen ?
So eine Art "Restart"- Funktion ?
Neustart
-
- [ offen ]
-
Amateur -
23. Dezember 2011 um 15:27 -
Geschlossen -
Erledigt
-
-
Ja, eine ganz einfache:
[autoit]ShellExecute (@ScriptFullPath)
[/autoit]
Exit -
Oke danke
Gibt es auch eine Möglichlkeit zu einer bestimmten Programmzeile (Befehl) zu springen ? -
Ein kompletter Neustart muss ja nicht notwendig sein, poste doch einfach mal dein Script.
Je nach Script gibt es die unterschiedlichsten Möglichkeiten bzw. Aufgaben um den Ursprungszustand wiederherzustellen, sei es der Aufruf oder das Verlassen einer Funktion, das reseten von globalen Variablen oder ein kompletter Neustart des Scriptes ggf. in Verbindung mit einem Parameteraufruf und dem Datei Export bestimmter Variablen/Einstellungen welche erhalten bleiben sollen.
-
Ich habe ein etwas zerflügtes Script
Im Prinzip ein normales Shutdown Script (auch teilweise schlecht programmiert ich weiß)
Nur wolte ich nun eine Menü erstellen wo ich dann Sprachen einstellen kann.
Wollte aber das Programm nicht neu starten damit die gesetzte Sprache nicht wieder verloren geht.
Will aber nicht eine neue Datei oder so anlagen und scho gar nichts installieren.
Mein Ziel ein vielfältigeres Shutdownprogramm ohne Installation.
(Es können noch überflüssige Variablen vorhanden sein da dies ein Erstwurf aus teilen von anderen Script enstanden ist)Main
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include<GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <Misc.au3>
#include "C:\Users\Thomas\Desktop\AutoIt\Selbst gemacht\Shutdown offiziel\GUI.au3"
#include "C:\Users\Thomas\Desktop\AutoIt\Selbst gemacht\Shutdown offiziel\CheckGUI.au3"
#include "C:\Users\Thomas\Desktop\AutoIt\Selbst gemacht\Shutdown offiziel\Function.au3"while 1
[/autoit]
GUI()
CheckGUI()
Herunterfahren()
WendGUI
Spoiler anzeigen
[autoit]Func GUI()
[/autoit] [autoit][/autoit] [autoit]
Global $Restart, $Shutdown, $StandBy, $LogOff, $Checkbox1, $Form2, $OK
Global $Label1, $Label2, $Label3, $Label4
Global $Sofort, $Spaeter
Global $Minuten, $Sekunden, $Form1, $Com, $Her, $Abbrechen, $nMsg
Global $Zeit, $Main, $begin, $dif$Main = GUICreate("EasyShutdown", 272, 271, 496, 127)
[/autoit]
$Minuten=GUICtrlCreateInput("10", 16, 104, 57, 21)
$Sekunden=GUICtrlCreateInput("00", 144, 104, 57, 21)
$Checkbox1 = GUICtrlCreateCheckbox("Vorwarnung", 112, 72, 97, 17)
$Restart = GUICtrlCreateButton("Neu Starten", 136, 208, 105, 33, 0)
$Shutdown = GUICtrlCreateButton("Herunterfahren", 8, 160, 105, 33, 0)
$StandBy = GUICtrlCreateButton("Ruhezustand", 136, 160, 105, 33, 0)
$LogOff = GUICtrlCreateButton("Abmelden", 8, 208, 105, 33, 0)
$Label1 = GUICtrlCreateLabel("Minuten", 32, 128, 42, 17)
$Label2 = GUICtrlCreateLabel("Sekunden", 152, 128, 53, 17)
$Label3 = GUICtrlCreateLabel("Easy Shutdonw by Thomas Nimmervoll", 8, 8, 187, 17)
$Sofort = GUICtrlCreateRadio("Sofort", 16, 40, 113, 17)
$Spaeter = GUICtrlCreateRadio("Später", 16, 72, 89, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUISetState(@SW_SHOW)
GUISetState()
$Zustand = 0
EndFuncCheck GUI
Spoiler anzeigen
[autoit]Func CheckGUI()
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $Spaeter
GUICtrlSetState($Sekunden, $GUI_ENABLE)
GUICtrlSetState($Minuten, $GUI_ENABLE)
GUICtrlSetState($Checkbox1, $GUI_ENABLE)
Case $Sofort
GUICtrlSetState($Sekunden, $GUI_DISABLE)
GUICtrlSetState($Minuten, $GUI_DISABLE)
GUICtrlSetState($Checkbox1, $GUI_DISABLE)
;~
Case $Restart
$Zustand = "Restart"
ExitLoop
Case $Shutdown
$Zustand = "Shutdown"
ExitLoop
Case $StandBy
$Zustand = "StandBy"
ExitLoop
Case $LogOff
$Zustand = "Logoff"
ExitLoop
[/autoit] [autoit][/autoit] [autoit]
Case Else
EndSwitch
WEnd
$Zeit = (GUICtrlRead($Sekunden)+ GUICtrlRead($Minuten)*60)
$Checkbox1 = GUICtrlRead($Checkbox1)EndFunc
[/autoit]Funktion
Spoiler anzeigen
[autoit]Func Herunterfahren()
[/autoit]
If GUICtrlRead($Sofort) = 1 Then
WinSetState($Main,"",@SW_SHOWMINNOACTIVE)
Shutdown (2)
ElseIf GUICtrlRead($Spaeter) = 1 Then
WinSetState($Main,"",@SW_Hide)
$Form1 = GUICreate("Form1", 230, 80, 1360, 750)
$Com = GUICtrlCreateLabel("computer wird in", 8, 14, 84, 17)
$Her = GUICtrlCreateLabel("", 92, 14, 124, 17)
$Abbrechen = GUICtrlCreateButton("Abbrechen", 88, 48, 75, 25, 0)
GUISetState(@SW_SHOW)
GUISetState()
$Zeit = (GUICtrlRead($Sekunden)+ GUICtrlRead($Minuten)*60)
Global $sek = @SEC
While $Zeit > 0
GUICtrlSetData($Her, Round($Zeit,0) & "sek neu gestartet")
If $Zeit >= 0 Then
While Sleep(10)
If $sek <> @SEC Then ExitLoop
Switch GUIGetMSG()
Case $GUI_EVENT_Close
ExitLoop 2
Case $Abbrechen
ExitLoop 2
EndSwitch
WEnd
$sek = @SEC
$Zeit -= 1
ConsoleWrite($Zeit & @CRLF)
EndIf
WEnd
Switch $Zeit
Case 0
If GUICtrlRead($Checkbox1)=1 Then
GUIDelete ($Form1)
$Form2 = GUICreate("Form1", 230, 80, 680, 370)
$Abbrechen = GUICtrlCreateButton("Abbrechen", 88, 48, 75, 25, 0)
$OK = GUICtrlCreateButton ("OK", 10, 48, 75, 25, 0)
$Label4 = GUICtrlCreateLabel("Computer jetzt neustarten ?", 20, 18, 200, 26)
GUISetState(@SW_SHOW)
GUISetState()
while 1
Switch GUIGetMsg()
Case $OK
GUIDelete ($Form2)
Shutdown (2)
ExitLoop(2)
Case $Abbrechen
GUIDelete ($Form2)
ExitLoop
EndSwitch
WEnd
EndIf
IF GUICtrlRead($Checkbox1)=4 Then
GUIDelete ($Form1)
Shutdown (2)
EndIf
Case Else
GUIDelete ($Form1)
MsgBox(4096,"Info","Vorgang durch Benutzer abgebrochen",1.2)
EndSwitch
Else ;
EndIf
EndFunc