Neustart

  • Gibt es eine einfache Möglichkeit ein Script von vorne Anfangen zu lassen ?
    So eine Art "Restart"- Funktion ?

  • 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>
    #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"

    [/autoit] [autoit][/autoit] [autoit]

    while 1
    GUI()
    CheckGUI()
    Herunterfahren()
    Wend

    [/autoit]

    GUI

    Spoiler anzeigen
    [autoit]

    Func GUI()
    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

    [/autoit] [autoit][/autoit] [autoit]

    $Main = GUICreate("EasyShutdown", 272, 271, 496, 127)
    $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
    EndFunc

    [/autoit]

    Check GUI

    Spoiler anzeigen
    [autoit]

    Func CheckGUI()

    [/autoit] [autoit][/autoit] [autoit]

    While 1

    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)

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit]

    Funktion

    Spoiler anzeigen
    [autoit]

    Func Herunterfahren()

    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

    [/autoit]