was mach ich falsch?

  • [autoit]


    Func met()
    MouseClick("left",93,238,1,10) ; klick dass fenster geöffnet wird
    Sleep(Int(Random(4000,10000)))
    if pixelsearch(843,304,846,306,65280) then ; suche nach dem pixel im bereich...
    Mouseclick("left",844,305,1,90) ; wenn es diesen findet dann führe aus
    Sleep(2000)
    elseif met() ; wenn net starte es neu aber irgendwie geht des elseif met net da muss glaub der fehler sein
    EndIf
    EndFunc

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

    met ()

    [/autoit]

    die funktion soll folgendermaßen ablaufen wenn ein bestimmter bereich nen grünen pixel 65280 aufweist dann führe aktion durch ansonsten wiederhole die anwendung


    oder muss ich da bei elseif


    [autoit]

    if @error then

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

    met ()

    [/autoit]
  • Spoiler anzeigen
    [autoit]

    met ()

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

    Func met()
    Do
    MouseClick("left",93,238,1,10)
    Sleep(Int(Random(4000,10000)))
    pixelsearch(843,304,846,306,65280)
    Until @error = 0
    Mouseclick("left",844,305,1,90)
    Sleep(2000)
    EndFunc

    [/autoit]


    1. NIEMALS Funktionen sich selbst aufrufen lassen wenn es sich vermeiden lässt, sonst bist du ganz schnell beim Rekursionslimit und dann bricht das Skript mit ner dollen Fehlermeldung ab.
    2. Wo liegt der Fehler ^^?

  • An deiner Stelle würde ich ne Schleife nehmen

    [autoit]

    Func met()
    MouseClick("left",93,238,1,10) ; klick dass fenster geöffnet wird

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

    Do
    Sleep(Int(Random(4000,10000)))
    Until pixelsearch(843,304,846,306,65280) ; suche nach dem pixel im bereich...

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

    Mouseclick("left",844,305,1,90) ; wenn es diesen findet dann führe aus
    Sleep(2000)

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

    EndFunc

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

    met ()

    [/autoit]