While schleife abrechen

  • Hi@all
    Ist ein bissel her das ich mit autoit programmiert habe und bin ein bissel eingerostet.
    Ich habe grade folgendes Problem.
    Ich spiele ein bissel mit der _IECreateEmbedded und habe eine While schleife die ich mit Hilfe eines Butten abstoppen will doch irgend wie will er da nicht aussteigen sondern ignoriert denn befehl.

    die while schleife:

    Spoiler anzeigen
    [autoit]

    While 1 $xyz = $xyz + 1 _IENavigate($oIE, $link & $xyz) ProcessClose ("iexplore.exe") Sleep (5000)WEnd

    [/autoit]
  • Daran dacht ich auch doch wenn ich denn Button klicke macht er trotzdem mit der schleife weiter.
    Es reagiert noch nicht mal der Schlissen butten.


    Spoiler anzeigen
    [autoit]

    While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE ExitLoop Case $msg = $GUI_Button_Forward start () Case $msg = $GUI_Button_Stop ExitLoop
    EndSelectWEnd

    [/autoit]
  • Hallo Evoli_66,

    Das Problem ist, dass während du in dieser Schleife bist der Buttonklick nicht ausgewertet wird. Er geht zwar nicht verloren, wird aber erst nach Beendigung der func / case-Zweig etc. in der diese Schleife ist abgearbeitet. Im übrigen kann ich keinen Versuch erkennen die Schleife abzubrechen, poste einfach mal dein komplettes Skript, achte dabei aber auf korrekte Formatierung,

    Edit: Juliens Vorschlag funktioniert

    mfg autBert

  • Spoiler anzeigen
    [autoit]

    Do
    $xyz = $xyz + 1
    _IENavigate($oIE, $link & $xyz)
    ProcessClose ("iexplore.exe")
    Sleep (5000)WEnd
    $nMsg = GuiGetMsg()
    Until $nMsg = $Button

    [/autoit]

    Do und until benutzen, ansonsten gibt es noch so eine GuiSetOnEvent Methode.

  • Das ist mein code.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>
    _IEErrorHandlerRegister ()

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

    $oIE = _IECreateEmbedded ()
    GUICreate("Tool", 1085, 618, _
    (@DesktopWidth - 640) / 2, (@DesktopHeight - 50) / 2, _
    $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
    $GUIActiveX = GUICtrlCreateObj($oIE, 10, 40, 1024, 500)
    GUICtrlSetFont(-1, 25, 400, 0, "Haettenschweiler")

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

    $GUI_Button_Forward = GUICtrlCreateButton("Start", 120, 580, 100, 30)
    $GUI_Button_Stop = GUICtrlCreateButton("Stop", 250, 580, 100, 30)

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

    GUISetState() ;Show GUI

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

    _IENavigate ($oIE, $Seite)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $GUI_Button_Forward
    start ()
    Case $msg = $GUI_Button_Stop
    ExitLoop
    EndSelect
    WEnd

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

    Func start ()
    While $GUI_Button_Stop = 1
    $xyz = $xyz + 1
    _IENavigate($oIE, $link & $xyz)
    ProcessClose ("iexplore.exe")
    Sleep (5000)
    WEnd
    EndFunc

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

    GUIDelete()

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

    Exit

    [/autoit]
  • Hall Evoli_66,

    diese Skript ist nicht lauffähig:

    poste als dein echtes Skript,denn bis hierher kommt man gar nicht:


    Ich spiele ein bissel mit der _IECreateEmbedded und habe eine While schleife die ich mit Hilfe eines Butten abstoppen will doch irgend wie will er da nicht aussteigen sondern ignoriert denn befehl.
    [/autoit][/spoiler]


    oder mach es alleine,

    mfg autoBert