HILFE ( muss einfach im ersten post stehen )
hi @ all
befasse mich erst seit kurzem mit autoit, bin also n kacknoob !
deshalb bitte ich um etwas gedult
kurze beschreibung zu meinen autoit prob :
hab ein gui gebastelt das eine funktion aufruft, diese funktion dauert mehrere minuten in einer do/for schleife,
wobei ein durchlauf 3-8 sec dauert, soweit so gut...
nun moechte ich (ueber das gui) diese funktion pausieren, bzw abbrechen
das problem ist , dass wenn die func laueft, ich keinen einfluss mehr auf das gui hab
bzw ich dieses nicht ansprechen kann ( pausieren, exit )
was aber durch das "tray-menu" möglich ist ...also muss es irgendwie gehen
vereinfahcte variante des scripts :
Spoiler anzeigen
#include <GUIConstants.au3>
$wait = 1000 ; wait-time simuliert einen step
$s = 0 ; progressbar-saveposition
GUICreate("GUI BSP",220,100, 100,200)
$progressbar = GUICtrlCreateProgress (10,10,200,20, $PBS_SMOOTH)
$button = GUICtrlCreateButton ("Start",25,70,70,20)
$def_button = GUICtrlSetState($button, $GUI_DEFBUTTON)
$button2 = GUICtrlCreateButton ("Cancel",125,70,70,20)
$howto = GUICtrlCreateButton ("HowTo",25,40,70,20)
$options = GUICtrlCreateButton ("Options",125,40,70,20)
;---------------------------------------------------------------
GUISetState ()
do
$msg = GUIGetMsg()
If $msg = $howto Then
MsgBox (64,"HowTo", ".....")
ElseIf $msg = $options Then
MsgBox (1,"Options", ".....")
ElseIf $msg = $button2 Then
ExitLoop
ElseIf $msg = $button Then
GUICtrlSetState($HowTo, $GUI_DISABLE)
GUICtrlSetState($options, $GUI_DISABLE)
GUICtrlSetData ($button, "Pause")
For $i = $s To 10
$m = GUIGetMsg ()
If $m = $button2 Then ExitLoop
If $m = -3 Then ExitLoop
If $m = $button Then
GUICtrlSetData ($button, "Next")
$s = $i ;save the current bar-position to $s
ExitLoop
Else
_count()
EndIf
Next
if $i > 10 then
GUICtrlSetData ($button, "Start")
GUICtrlSetState($HowTo, $GUI_ENABLE)
GUICtrlSetState($options, $GUI_ENABLE)
EndIf
EndIf
until $msg = $GUI_EVENT_CLOSE
;---------------------------------------------------------------
Func _count ()
$s=0
GUICtrlSetData ($progressbar,$i*10)
Sleep($wait)
EndFunc ; => _count
hab dieses bsp mit Opt("GUIOnEventMode", 1) sowie mit der GUIGetMsg() variante versucht
beide versuche leider ohne erfolg
hab auch schon im forum gesucht und ein ähnliches thema gefunden
Loop stoppen
leider funzt die lösung die dort angeboten wird nicht
bin für jede hilfe/anregung dankbar ,
b00ny