Hallo zusammen,
habe mich soeben frisch im Forum angemeldet. Bin absoluter autoit Neuling.
Ich bin dabei mir eine GUI zu erstellen um mit robocopy (direkt oder per batch Aufruf) Dateien auf mein NAS zu sichern. Zu Testzwecken rufe ich aktuell nur einen "ping" auf localhost auf.
In der Funktion mit der ich die cmd Ausgabe in die GUI weiterleite, habe ich folgendes Problem.
Ich schaffe es nur, entweder ohne Abbruchmöglichkeit oder wenn dann mit zwanghafter Abbruchmöglichkeit (Button). Da sich die schleife nun nicht mehr beendet..
Gewünscht ist aber nur die Möglichkeit Abbrechen zu können.
[autoit]
#include <constants.au3>
#include <windowsconstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
$win=GUICreate("Script zur Sicherung durch robocopy - ver0.1", 640,480,-1,-1)
GUICtrlCreateLabel ("Live Ansincht", 10, 10, 710)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$btn_copy=GUICtrlCreateButton("copy",220,440,75,25)
$btn_exit=GUICtrlCreateButton("Exit",400,440,75,25)
$output_cmd = GUICtrlCreateEdit("", 10, 40, 620, 300, $ES_READONLY + $WS_VSCROLL + $WS_HSCROLL)
[/autoit][autoit][/autoit][autoit]GUISetState()
[/autoit][autoit][/autoit][autoit]$exit=False
While $exit=False
$nMsg = GUIGetMsg()
Switch $nMsg
case $btn_exit
$exit=True
case $btn_copy
_write_console()
EndSwitch
wend
GUIDelete()
func _write_console()
$btn_cancel=GUICtrlCreateButton("Abbruch",310,440,75,25)
Local $robocopy = Run(@ComSpec & " /c " & "ping 127.0.0.1", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $line
ConsoleWrite($line)
[/autoit][autoit][/autoit][autoit][/autoit][autoit]While 1
$line=StdoutRead($robocopy)
$nMsg=GUIGetMsg() ; <------------------------------------- Abbruchmöglichkeit
Select
Case @error
ExitLoop
Sleep(10)
case $line <> ""
GUICtrlSetData($output_cmd, $line,1)
Case $nMsg=$btn_cancel ; <------------------------------------- Abbruchmöglichkeit
MsgBox(0, "blabla", "Abbruch") ; <------------------------------------- Abbruchmöglichkeit
ExitLoop ; <------------------------------------- Abbruchmöglichkeit
EndSelect
[/autoit][autoit][/autoit][autoit]WEnd
[/autoit][autoit][/autoit][autoit]MsgBox(0, "blabla", "Funktion abgeschlossen")
EndFunc
Vermutlich check ichs einfach nicht... dürft ihr ruhig sagen
Für Tipps oder Lösungen wäre ich sehr dankbar.
Greetz