Was ist hier falsch?

  • Hallo, ich habe mich einige Zeit mit Autoit Auseinander gesetzt und hab nun gedacht ich Löse ein kleines Spiel, das ich in HTML geschrieben habe.
    An der Coordinate 682 473, ist ein Link welcher sofort nachdem er angeklickt wird verschwindet.
    Ich öffne den Link in einem Neuen Tab. Auf dieser Seite ist dann entweder der Header Rot oder Grün. Wenn er Rot ist, läuft ein kleiner Countdown.
    Um das warten zu verhindern, dachte ich soll er erst die nächsten Tabs überprüfen.
    Aber mit meinem Script funktioniert etwas nicht.
    Ich bitte euch, es mal anzuschauen und ggf. mir eine Problemlösung vorzuschlagen. Wehe es kommt einer und meint: RTFM!!!!111elevenone

    Spoiler anzeigen
    [autoit]


    HotKeySet ( "A" , "start" )
    Func start()
    WinWaitActive("Bla") ; Hier kommt der Name des Fensters hin
    $Red = 0xFF3366
    $Orange = 0xFB773F
    For $i = 1 to 1 Step 1 ; ----------------------------------
    MouseClick ("Middle", 682, 473, 1) ; --------------------
    next ; --------------------------------------------------
    Sleep(500) ; --------------------------------------------
    For $i = 1 to 1 Step 1 ; --------------------------------
    MouseClick ("Middle", 682, 473, 1) ; --------------------
    next ; --------------------------------------------------
    Sleep(500) ; ------------------------------------------
    For $i = 1 to 1 Step 1 ; --------------------------------
    MouseClick ("Middle", 682, 473, 1) ; --------------------
    next ; --------------------------------------------------
    Sleep(500) ; ------------------------------------------
    For $i = 1 to 1 Step 1 ; --------------------------------
    MouseClick ("Middle", 682, 473, 1) ; --------------------
    next ; --------------------------------------------------
    Sleep(500) ; ------------------------------------------
    For $i = 1 to 1 Step 1 ; --------------------------------
    MouseClick ("Middle", 682, 473, 1) ; --------------------
    next ; --------------------------------------------------
    Sleep(500) ; ------------------------------------------
    For $i = 1 to 1 Step 1 ; ------------------------------------------------------------------------------ Hier wird der 2te Tab angewählt
    MouseClick ("Left", 258, 9, 1) ; ---------------------------------------------------------------------- Hier wird der 2te Tab angewählt
    next ; ------------------------------------------------------------------------------------------------ Hier wird der 2te Tab angewählt
    Sleep(500) ; ---------------------------------------------------------------------------------------- Hier wird der 2te Tab angewählt

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

    While 1 ; -------------------------------------------------
    $Coord = PixelSearch(0, 64, 1395, 71, $Red, 10) ; ----- Hier wird die Farbe Rot gesucht 1
    If @error Then ; -------------------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    For $i = 1 to 1 Step 1 ; -------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    MouseClick ("Left", 383, 13, 1) ; ----------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    EndIf ; ------------------------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    Sleep(500) ; --------------------------------------
    If Not @error Then ; ---------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    Send("^{TAB}") ; ---------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    EndIf ; ------------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    Sleep(500) ; -------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    ExitLoop
    WEnd ; ---------------------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab

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

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

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

    While 3 ; -------------------------------------------------
    $Coord = PixelSearch(0, 64, 1395, 71, $Red, 10) ; ----- Hier wird die Farbe Rot gesucht 2
    If @error Then ; -------------------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    For $i = 1 to 1 Step 1 ; -------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    MouseClick ("Left", 383, 13, 1) ; ----------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    EndIf ; ------------------------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    Sleep(500) ; --------------------------------------
    If Not @error Then ; ---------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    Send("^{TAB}") ; ---------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    EndIf ; ------------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    Sleep(500) ; -------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    ExitLoop
    WEnd ; ---------------------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab

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

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

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

    While 5 ; -------------------------------------------------
    $Coord = PixelSearch(0, 64, 1395, 71, $Red, 10) ; ----- Hier wird die Farbe Rot gesucht 3
    If @error Then ; -------------------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    For $i = 1 to 1 Step 1 ; -------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    MouseClick ("Left", 383, 13, 1) ; ----------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    EndIf ; ------------------------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    Sleep(500) ; --------------------------------------
    If Not @error Then ; ---------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    Send("^{TAB}") ; ---------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    EndIf ; ------------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    Sleep(500) ; -------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    ExitLoop
    WEnd ; ---------------------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab

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

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

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

    While 7 ; -------------------------------------------------
    $Coord = PixelSearch(0, 64, 1395, 71, $Red, 10) ; ----- Hier wird die Farbe Rot gesucht 4
    If @error Then ; -------------------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    For $i = 1 to 1 Step 1 ; -------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    MouseClick ("Left", 383, 13, 1) ; ----------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    EndIf ; ------------------------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    Sleep(500) ; --------------------------------------
    If Not @error Then ; ---------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    Send("^{TAB}") ; ---------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    EndIf ; ------------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    Sleep(500) ; -------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    ExitLoop
    WEnd ; ---------------------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab

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

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

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

    While 9 ; -------------------------------------------------
    $Coord = PixelSearch(0, 64, 1395, 71, $Red, 10) ; ----- Hier wird die Farbe Rot gesucht 5
    If @error Then ; -------------------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    For $i = 1 to 1 Step 1 ; -------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    MouseClick ("Left", 383, 13, 1) ; ----------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    EndIf ; ------------------------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    Sleep(500) ; --------------------------------------
    If Not @error Then ; ---------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    Send("^{TAB}") ; ---------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    EndIf ; ------------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    Sleep(500) ; -------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    ExitLoop
    WEnd ; ---------------------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab

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

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

    [/autoit]


    MFG & Frohe Ostern

    PS: Dies ist kein Bot, ich hab mir das mal in HTML geschrieben bzw. habe ich noch mehr Scripte um damit meine Kenntnisse auszubauen. Ich hab dieses Programm schoneinmal geschrieben vor ca. 6 Jahren in C++ jedoch war dies auch das einzigste weil mir mit dieser Sprache schnell die Lust verging.

  • und wieso nimmst du schleifen, wenn du aus der Schleife eh sofort mit exitloop wieder rausgehst ^^

    [autoit]

    While 1 ; -------------------------------------------------
    $Coord = PixelSearch(0, 64, 1395, 71, $Red, 10) ; ----- Hier wird die Farbe Rot gesucht 1
    If @error Then ; -------------------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    For $i = 1 to 1 Step 1 ; -------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    MouseClick ("Left", 383, 13, 1) ; ----------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    EndIf ; ------------------------------------------- Findet er die Farbe Rot nicht, Schließt er den Tab
    Sleep(500) ; --------------------------------------
    If Not @error Then ; ---------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    Send("^{TAB}") ; ---------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    EndIf ; ------------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    Sleep(500) ; -------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab
    ExitLoop
    WEnd ; ---------------------------------------------------- Findet er die Farbe Sendet er STRG + TAB bzw. wechselt in den nächsten Tab

    [/autoit]

    Tut mir leid aber ich versteh dein ganzes Skript nicht

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • Lies dich mal in die Hilfe zu "For...To...Step...Next" ein, und wenn du von einer schleife in die nächste gehst mit den selben variablen und befehlen verwende lieber eine "func" dazu, wenn du willst das ein befehl nur einmal ausgeführt wird (so wie ich das sehe, wolltest du das erreichen mit

    [autoit]


    For $i = 1 To 1 Step 1

    [/autoit]


    das kannst du gleich weglassen da es überhaupt keinen sinn ergibt, dafür brauchst du nichmal eine schleife... (normale If Abfragen genügen für dein Skript), aber ich glaube bevor dir jetzt irgendwer behilflich sein wird, solltest du zummindest verstehen - was eine schleife ist bzw. Funktionen, und wie du sinnvoll mit befehlen umgehst(While 1...While 2... -> sind keine nummerierungen für eine schleife) eine schleife existiert solange bis du sie mit "Wend" oder "ExitLoop" beendest. Also stell deine Frage wieder, wenn du zumindest den Ansatz der Syntax in AutoIt verstehst.

    zum Abschluss als Erklärung:
    in deiner For Schleife deklarierst du $i als startwert 1 (ist noch ok) :thumbup:
    als endwert (kommt nach To...) gibst du als endwert auch 1 an (ist völlig sinnlos da du somit, die For Schleife ausser Kraft setzt) :thumbdown:
    und als Erhöhungsschritt bis zum Endwert gibst du auch 1 an (der ja sowieso nicht greift da der Startwert schon der Endwert ist und es somit nichts zum zählen gibt....) ;(

    Die deutsche AutoIt Hilfe bokummst du unter: http://translation.autoit.de/autoitinfo/hil…nd-24_03_10.zip

    Spoiler anzeigen
    Zitat

    Ich weiß wo dein Haus wohnt... 8o

  • Stimmt bei mir auch.

    [autoit]

    HotKeySet("{a}", "_Test")

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

    While 1
    Sleep(10)
    WEnd

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

    Func _Test()
    MsgBox(0, "Test", "Test")
    EndFunc

    [/autoit]