1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. JeyPie

Beiträge von JeyPie

  • Abbrechen Button in zweiter Schleife ohne Funktion

    • JeyPie
    • 28. März 2018 um 15:07
    Zitat von alpines

    Du müsstest statt $msg dort eigentlich GUIGetMsg() verwenden, denn das liefert dir immer die aktuellste Nachricht zurück.

    Vielen vielen Dank, habe es mit deinem Tipp und Beispiel so hinbekommen wie ich wollte. :)

  • Abbrechen Button in zweiter Schleife ohne Funktion

    • JeyPie
    • 27. März 2018 um 16:08

    Hallo liebe autoit-Freunde,

    ich habe ein Problem mit meinem noch nicht ganz fertigen Shutdown-Skript.

    Es soll zu einer bestimmten Uhrzeit (basierend auf der von Windows) also keine Differenz-Funktion, den PC herunterfahren. Dies funktioniert auch ganz gut.

    Jedoch wäre ich gern in der Lage nach Betätigung des Skriptes durch "OK", es durch den Button "Abbrechen" zu unterbrechen und neu konfigurieren bzw. zu initiieren.

    Aber das bekomme ich einfach nicht auf die Reihe. Auch der Kill des kompletten Skriptes per "Abbrechen" nach Aktivierung wäre ein Fortschritt, scheitere aber selbst daran.

    Habe schon verschiedene Varianten und Schleifen probiert aber ohne Erfolg. :(

    Die entsprechende Stelle ist im Quellcode markiert, testen könnt ihr mit der Option "Herunterfahren".

    Vielen Dank im Voraus.

    Ich hoffe mal, dass ich nicht auf GUI OnEvent switchen muss. :/

    Code
    #include <GUIConstants.au3>
    
    $Form1 = GUICreate("Shutdown!", 290, 325, 280, 283)
    Global $Stunde = GUICtrlCreateInput("09", 72, 35, 40, 21, -1, $WS_EX_CLIENTEDGE)    ;Stunde
    Global $Minute = GUICtrlCreateInput("30", 200, 35, 40, 21, -1, $WS_EX_CLIENTEDGE)    ;Minute
    GUICtrlCreateGroup("Uhrzeit eingeben", 10, 10, 270, 65)
    ;GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Stunde:", 25, 37, 40, 17)
    GUICtrlCreateLabel("Minute:", 150, 37, 40, 17)
    GUICtrlCreateGroup("Optionen", 10, 85, 270, 75)
    Global $Radio1 = GUICtrlCreateRadio("Herunterfahren", 25, 105)
    Global $Radio2 = GUICtrlCreateRadio("Neustart", 25, 125)
    Global $Radio3 = GUICtrlCreateRadio("Abmelden", 140, 105)
    Global $Radio4 = GUICtrlCreateRadio("Zwangs Shutdown", 140, 125)
    GUICtrlCreateGroup("Status", 10, 170, 270, 70)
    $status = GUICtrlCreateEdit(" --- Nicht gestartet ---", 25, 190, 245, 40, BitOR(0x0800, 0x0040, 0x2000))
    $Ok = GUICtrlCreateButton("OK", 25, 255, 97, 25)
    Global $Abbrechen1 = GUICtrlCreateButton("Abbrechen", 160, 255, 105, 25)
    GUICtrlSetState($Radio1, $GUI_CHECKED)
    GUISetState(@SW_SHOW, $Form1)
    
    ;Global $Std = GUICtrlRead($Stunde)
    ;Global $Min = GUICtrlRead($Minute)
    
    ;============== Abfrage der GUI-Buttons ==============
    
    While 1
        Global $msg = GuiGetMsg()
        Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
         Case $msg = $Abbrechen1
            Exit
         Case $msg = $Ok
    
                If GUICtrlRead($Radio1) = 1 Then
                ;MsgBox(1,"","Herunterfahren")
    
                Local $Std = GUICtrlRead($Stunde)
                Local $Min = GUICtrlRead($Minute)
    
                _All_GUI_Controls($Status)
                GUICtrlSetData($status, " --- Skript gestartet --- "  & @CRLF & "Herunterfahren zur Ziel-Zeit: " & $Std & ":" & $Min)
    
                While 2
                   If $Std = @HOUR And $Min = @MIN Then
                     ExitLoop
                   ElseIf $msg = $Abbrechen1 Then ;========> HIER LIEGT MEIN PROBLEM
                     ExitLoop
                   EndIf
                WEnd
                  MsgBox(1,"Ok","Shutdown")
                   Exit
    
                ElseIf GUICtrlRead($Radio2) = 1 Then
                MsgBox(1,"","Neustart")
                  ;Shutdown(2)
    
                ElseIf GUICtrlRead($Radio3) = 1 Then
                MsgBox(1,"","Abmelden")
                  ;Shutdown(0)
    
                ElseIf GUICtrlRead($Radio4) = 1 Then
                MsgBox(1,"","Zwangs Shutdown")
                  ;Shutdown(5)
    
                EndIf
        Case Else
              ;MsgBox(1,"Fehler","Es ist ein Fehler aufgetreten. :(")
         EndSelect
    
     WEnd
    Exit
    
    ;============== Funktionen ==============
    
    Func _All_GUI_Controls($Status)
    ;deaktiviert alle Controls nach Skriptaktivierung
      GUICtrlSetState($Stunde,$GUI_DISABLE)
      GUICtrlSetState($Minute,$GUI_DISABLE)
      GUICtrlSetState($Radio1,$GUI_DISABLE)
      GUICtrlSetState($Radio2,$GUI_DISABLE)
      GUICtrlSetState($Radio3,$GUI_DISABLE)
      GUICtrlSetState($Radio4,$GUI_DISABLE)
      GUICtrlSetState($Ok,$GUI_DISABLE)
    EndFunc
    Alles anzeigen

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™