While in While oder andere Lösung?!

  • Hey,
    ich möchte nun mein Script in einer Schleife laufen lassen eig. nur eine Bestimmte Zeit lang aber erst mal das jetztige Problem lösen.
    Das man While benutzt um etwas immer wieder zu tun weiß ich.
    Nun ich weiß auch das man eine Schleife nicht in einer Schleife benutzten kann bzw. es würe funktionieren aber die Letzte Funktion würde nie enden.
    BSP:

    [autoit]


    While 1
    MsgBox(0, "Test1", "Hallo Welt1!")
    While 1
    MsgBox(0, "Test2", "Hallo Welt!2")
    WEnd
    WEnd

    [/autoit]


    Die erste Schleife wird beendet, die zweite nicht. Das kann man eig. auch ohne Programmierkenntnisse wissen.
    Gibt es eine Mögichkeit ein Script z.b. Dieses:

    [autoit]


    While 1
    MsgBox(0, "Test1", "Hallo Welt1!")
    WEnd
    While 1
    MsgBox(0, "Test2", "Hallo Welt!2")
    WEnd

    [/autoit]


    In eine Schleife zu packen? Am besten für eine betimmte Zeit. In der Hilfe fand ich dazu nichts!

  • Falsch, die 1. Schleife wird gestartet es wird 1 mal Hallo Welt1! ausgegeben, danach startet die 2. Schleife es wird immer wieder Hallo Welt!2 ausgegeben. Da diese Schleife nie beendet wird, kommt es auch nie mehr zu einem weiteren Durchlauf der 1. Schleife, diese ist auch noch nicht beendet.

    Schau dir TimerInit und TimerDiff in der Hilfe an. Vorsichtshalber solltest du dir auch die Forenregeln durchlesen,

    mfg (Auto)Bert

  • Du checkst es nicht. Sorry aber ist so.
    Dein Script hängt an der inneren schleife. Das ligt nicht daran dass außenrum noch eine ist. weiteres in der sb.[MSIE_newline_end ]

  • Hier ein Beispiel was Ich meine:
    Das Script wäre z.b.:
    [Blockierte Grafik: http://www.imagebanana.com/img/1a0kfeda/omg.PNG]

    Neues Script:
    Aufgabe 1 =
    [Blockierte Grafik: http://www.imagebanana.com/img/1a0kfeda/omg.PNG]

    Aufgabe 2 =
    [Blockierte Grafik: http://www.imagebanana.com/img/1a0kfeda/omg.PNG]

    Aufgabe 3 =
    usw.

    Kurz:
    Ich hab ein Script (hier im Beispiel jetzt ein Baum pflanzen etc.) das soll sich Wiederholen. Wäre kein Problem wenn in diesem Script keine While Schleifen wären.
    Denn eine Scleife in einer Schleife geht nicht da eine nie enden wird. Das hat jetzt sogar "tkausl" verstanden...

  • Du hast immer noch nichts dazugelernt...
    Es geht nicht darum, dass du While Schleifen verwendest oder, dass sie ineinander stehen. Du verwendest Endlosschleifen (While 1).
    Benutze doch eine For Schleife, wenn du willst, dass etwas z.B. 5 mal gemacht wird.
    Wenn es um etwas anderes geht z.B. eine zeitliche Bedingung mache doch eine If Abfrage in die Schleife die ggf. ExitLoop aufruft.
    tkausl hat es von Anfang an verstanden, aber du tust das immer noch nicht. :thumbdown:

  • Also, ich kann jetzt das Hier:


    [autoit]


    [...]
    While 1
    $Coord = PixelSearch(0, 64, 1395, 71, $Red, 10)
    If @error Then ; --------------------------------------
    Send("^{TAB}") ; ----------------------------------
    EndIf ; -------------------------------------------
    Sleep(500) ; --------------------------------------
    If Not @error Then ; ----------------------------------
    MouseClick ("Left", 353, 14, 1) ; -----------------
    EndIf ; -------------------------------------------
    Sleep(500) ; --------------------------------------
    WEnd ; ----------------------------------------------------

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

    While 1 ; -------------------------------------------------------------------------------------------
    $Coord = PixelSearch(231, 100, 418, 182, $Orange, 10) ; ------------------------------------------
    If Not @error Then ; ----------------------------------------------------------------------------
    Send("^{TAB}") ; ----------------------------------------------------------------------------
    EndIf ; -------------------------------------------------------------------------------------
    Sleep(500) ; --------------------------------------------------------------------------------
    WEnd ; ----------------------------------------------------------------------------------------------
    [...]

    [/autoit]

    Einfach zu

    [autoit]


    [...]

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

    $Coord = PixelSearch(0, 64, 1395, 71, $Red, 10)
    If @error Then ; --------------------------------------
    Send("^{TAB}") ; ----------------------------------
    EndIf ; -------------------------------------------
    Sleep(500) ; --------------------------------------
    If Not @error Then ; ----------------------------------
    MouseClick ("Left", 353, 14, 1) ; -----------------
    EndIf ; -------------------------------------------
    Sleep(500) ; --------------------------------------

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

    $Coord = PixelSearch(231, 100, 418, 182, $Orange, 10) ; ------------------------------------------
    If Not @error Then ; ----------------------------------------------------------------------------
    Send("^{TAB}") ; ----------------------------------------------------------------------------
    EndIf ; -------------------------------------------------------------------------------------

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

    [...]

    [/autoit]


    Machen? Und das dann in einer Schleife Packen z.b.:

    [autoit]



    While 1
    [...]
    $Coord = PixelSearch(0, 64, 1395, 71, $Red, 10)
    If @error Then ; --------------------------------------
    Send("^{TAB}") ; ----------------------------------
    EndIf ; -------------------------------------------
    Sleep(500) ; --------------------------------------
    If Not @error Then ; ----------------------------------
    MouseClick ("Left", 353, 14, 1) ; -----------------
    EndIf ; -------------------------------------------
    Sleep(500) ; --------------------------------------

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

    $Coord = PixelSearch(231, 100, 418, 182, $Orange, 10) ; ------------------------------------------
    If Not @error Then ; ----------------------------------------------------------------------------
    Send("^{TAB}") ; ----------------------------------------------------------------------------
    EndIf ; -------------------------------------------------------------------------------------
    [...]
    WEnd

    [/autoit]
  • Keine ahnung warum bei mir nichtsmehr geht.
    Enter macht immer Doppelumbrüche, der block wird nicht angezeigt, und am ende von meinen posts steht des öfteren mal "[MSIE_ENDLINE]" oder so ähnlich. KP woran das ligt, mich nervts auch...
    der fehler ist in zeile 8[MSIE_newline_end ]

  • mach in das if mal ne MSGBOX um zu sehen ob wirklich nichts gefunden wird oder nur das tab nicht ausgeführt wird.
    wenn die box nicht ausgeführt wird wird die farbe auch nicht gefunden.[MSIE_newline_end ]