Bootscript

  • Hallo zusammen,

    ich hab da mal ein kleines Problem.

    In diesem Script hat man die Auswahl zwischen Reboot, Shutdown und Abort.

    Aber leider funktioniert es nicht so wie gewollt, schauts Euch am besten an.

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #include <GUIConstantsEx.au3>

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

    Opt("GUIOnEventMode", 1)
    $mainwindow = GUICreate("Boot-Auswahl", 250, 150)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")

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

    GUICtrlCreateLabel("Wählen Sie den gewünschten Typ aus!", 20, 10)

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

    $okbutton = GUICtrlCreateButton("Reboot", 70, 50, 100)
    GUICtrlSetOnEvent($okbutton, "_rebootclicked")

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

    $okbutton = GUICtrlCreateButton("Shutdown", 70, 80, 100)
    GUICtrlSetOnEvent($okbutton, "_shutdownclicked")

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

    $okbutton = GUICtrlCreateButton("Abort", 70, 110, 100)
    GUICtrlSetOnEvent($okbutton, "_abortclicked")

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

    GUISwitch($mainwindow)
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(1000)
    WEnd

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

    Global $aPC[2] = ["test1", "test2"]

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

    $timeout = "10"
    $reboot = @SystemDir & "\shutdown.exe -r -f -t " & $timeout & " -m "
    $shutdown = @SystemDir & "\shutdown.exe -s -f -t " & $timeout & " -m "
    $abort = @SystemDir & "\shutdown.exe -a -m "

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

    Func _rebootclicked()

    For $i = 0 To 1
    If $aPC[$i] <> "" Then _reboot($aPC[$i])
    Next

    EndFunc

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

    Func _shutdownclicked()

    For $i = 0 To 1
    If $aPC[$i] <> "" Then _shutdown($aPC[$i])
    Next

    EndFunc

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

    Func _abortclicked()

    For $i = 0 To 1
    If $aPC[$i] <> "" Then _abort($aPC[$i])
    Next

    EndFunc

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

    Func _reboot($PC)
    Run($reboot & $PC, "", @SW_HIDE)
    EndFunc

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

    Func _shutdown($PC)
    Run($shutdown & $PC, "", @SW_HIDE)
    EndFunc

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

    Func _abort($PC)
    Run($abort & $PC, "", @SW_HIDE)
    EndFunc

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

    Func CLOSEClicked()
    If @GUI_WinHandle = $mainwindow Then
    Exit
    EndIf
    EndFunc

    [/autoit]

    Ich hoffe man sieht was ich erreichen möchte.


    LG

    Schnuecks

  • die §okbutons müssen unterschiedlich sein $button1 2 3 z.B.

    und dann könntest du einfach die Funktion Shutdown() verwenden.

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Hi,
    setz mal Deine Variablendeklaration anders (hier bis zur Schleife):

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Opt("GUIOnEventMode", 1)
    Global $aPC[2] = ["test1", "test2"]

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

    $timeout = "10"
    $reboot = @SystemDir & "\shutdown.exe -r -f -t " & $timeout & " -m "
    $shutdown = @SystemDir & "\shutdown.exe -s -f -t " & $timeout & " -m "
    $abort = @SystemDir & "\shutdown.exe -a -m "

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

    $mainwindow = GUICreate("Boot-Auswahl", 250, 150)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")

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

    GUICtrlCreateLabel("Wählen Sie den gewünschten Typ aus!", 20, 10)

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

    $okbutton = GUICtrlCreateButton("Reboot", 70, 50, 100)
    GUICtrlSetOnEvent($okbutton, "_rebootclicked")

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

    $okbutton = GUICtrlCreateButton("Shutdown", 70, 80, 100)
    GUICtrlSetOnEvent($okbutton, "_shutdownclicked")

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

    $okbutton = GUICtrlCreateButton("Abort", 70, 110, 100)
    GUICtrlSetOnEvent($okbutton, "_abortclicked")

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

    GUISwitch($mainwindow)
    GUISetState(@SW_SHOW)

    [/autoit]

    P.S:

    Zitat

    die §okbutons müssen unterschiedlich sein $button1 2 3 z.B.


    Hat ich auch gedacht, funktioniert aber....
    ShutDown ist keine Lösung, da er einen initierten Shutdown abbrechen möchte....

    ;-))
    Stefan