Hallo Community
Habe mit Eurer Hilfe meine erste funktionierende GUI erstellt.
Dafür erstmal vielen Dank.
Es fehlt mir aber die genauere Kenntnis um das Script an einer bestimmten Stelle zu beenden,
deshalb bitte ich Euch mal einen Blick darauf zu werfen.
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
Opt('MustDeclareVars', 1)
Local $outfile, $isofertig, $isoaktuell, $command, $exe, $delete ; ??? wozu dient das vordeklarieren ?
$outfile = "D:\GRUB.iso"
$isofertig = 504072192 ;kb
$isoaktuell = 0
$command = "mkisofs.exe -o " & $outfile & " ""C:\GRUB"""
$exe = "mkisofs.exe"
FileDelete($outfile)
$delete = FileExists($outfile)
; MsgBox(0 , "Info", "" & $outfile & " existiert nicht.")
Example()
Func Example()
Local $progressbar1, $button, $wait, $s, $msg, $m
GUICreate("Stop My GUI", 500, 100, 100, 200) ; erstellt GUI-Fenster
$progressbar1 = GUICtrlCreateProgress(10, 10, 480, 20); Fortschrittsbalken
$button = GUICtrlCreateButton("START", 60, 50, 80, 30) ; erstellt START-Button
GUISetState(@SW_SHOW) ; startet die GUI
$wait = 80 ; time in msec to next progressstep
$s = 0; progressbar-saveposition
Do ; Anfang der Schleife (= Anfang der progresssteps ?)
$msg = GUIGetMsg() ; fragt ob, und was geklickt wurde
If $msg = $button Then ; wenn button-click START
Run($command, "", @SW_MINIMIZE) ; startet "mkisofs.exe" minimiert
GUICtrlSetData($button, "CANCEL"); ändert label des button in CANCEL
For $i = $s To 100 ; Schritte von aktueller Saveposition bis 100
$m = GUIGetMsg() ; fragt ob, und was geklickt wurde
If $m = -3 Then ExitLoop ; ??? Was produziert den Wert "-3"
If $m = $button Then ; wenn button-click CANCEL
ProcessClose($exe) ; beendet "mkisofs.exe"
Exit ; beendet dieses Script
Else ; wenn button-click CANCEL nicht erfolgt
$isoaktuell = FileGetSize($outfile) ; prüft Dateigröße
GUICtrlSetData($progressbar1, $isoaktuell/$isofertig*100) ; gibt die Position des Balkens vor
Sleep($wait) ; wartet vorgegebene Zeit
EndIf ; Ende der Bedingung
Next ; Weiter geht´s
If $i > 100 Then ; Wenn Schritte bei 100 dann
GUICtrlSetData($button, "FINISHED"); ändert label des button in FINISHED
If $m = $button Then ; wenn button-click FINISHED --- -->
Exit ; dann soll das Script beendet werden --> aber ??? CMD startet neu !!! WARUM ?
EndIf ; Ende der Bedingung
EndIf ; Ende der Bedingung
EndIf ; Ende der Bedingung
Until $msg = $GUI_EVENT_CLOSE ; bis Fenster geschlossen wird
EndFunc ;==>Example
Im Script hab ich Kommentare eingefügt, die möglicherweise unkorrekt sind und daher zum Fehler führen.
Meine Frage: Wie muß ich das Script konzipieren damit es nach Ablauf der Progressbar mit dem Button "FINISHED" geschlossen werden kann.
Außerdem: -Zeile 29: Was produziert den Wert "-3"
-Zeile 4 und 15: wozu dient das vordeklarieren ?
Vielleicht habt Ihr auch noch andere Vorschläge.
Vielen Dank im Vorraus.
Gruß M.