Problem mit If abfragen

  • Hallo, bin als anfänger dabei ein kleines script zu schreiben, wodurch dann unter bestimmten umständen tasten gedrückt werden, hab da nur ein prob. Am anfang ist eine abfrage ob nun an einer bestimmten stelle eine bestimmte farbe ist, wenn diese dort ist, soll die schleife wieder neu gestartet werden. wenn die farbe aber nicht da ist, soll de den rest vom script ausführen. mein prob ist nur, das entweder NUR der ober teil ausgeführt wird (sprich die schleife wird neu gestartet) oder NUR der untere teil! Leider hab ich keine ahnung woran das liegt...

    Hier mal die beiden versionen... (die tooltips sind nur zum überprüfen was gerde ausgeführt wird)


    [autoit]

    while 1
    while 1
    Sleep (1500)
    ToolTip ( "^^ THX" , 1, 1)
    sleep (1500)
    Send ( "{1}" )
    If PixelGetColor ( 432, 57) = 0xB88310 Then
    ToolTip ( ";)" , 1, 1)
    ExitLoop
    ElseIf not PixelGetColor ( 432, 57) = 0xB88310 Then
    ToolTip ( "123" , 1, 1)
    Send ( "{2}" )
    sleep (500)
    If PixelGetColor ( 408, 34) = 0x871D18 Then Send ( "{3}" )
    If PixelGetColor ( 408, 34) = 0x871D18 Then sleep (2000)
    If PixelGetColor ( 408, 34) = 0x871D18 Then sleep (2000)
    EndIf
    wend
    wend

    [/autoit]


    (nur der obere teil funct)

    [autoit]

    while 1
    while 1
    Sleep (1500)
    ToolTip ( "^^ THX" , 1, 1)
    sleep (1500)
    Send ( "{1}" )
    If PixelGetColor ( 432, 57) = 0xB88310 Then
    ToolTip ( ";)" , 1, 1)
    ExitLoop
    Else
    ToolTip ( "123" , 1, 1)
    Send ( "{2}" )
    sleep (500)
    If PixelGetColor ( 408, 34) = 0x871D18 Then Send ( "{3}" )
    If PixelGetColor ( 408, 34) = 0x871D18 Then sleep (2000)
    If PixelGetColor ( 408, 34) = 0x871D18 Then sleep (2000)
    EndIf
    wend
    wend

    [/autoit]


    (nur der untere teil funct)

  • Das einzigste was mir bis jetzt so aufällt ist das du sehr grosse sleep() Zeiten benutzt, und warum machst du zwei while schleifen ineinander?

  • So vielleicht?

    [autoit]

    While 1

    While PixelGetColor(432, 57) = 0xB88310
    ToolTip ( "Falsche Farbe --> Neustart Schleife" , 1, 1)
    Sleep(10)
    WEnd

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

    ToolTip ( "123" , 1, 1)
    Send ( "{2}" )
    sleep (500)
    If PixelGetColor ( 408, 34) = 0x871D18 Then Send ( "{3}" )
    If PixelGetColor ( 408, 34) = 0x871D18 Then sleep (2000)
    If PixelGetColor ( 408, 34) = 0x871D18 Then sleep (2000)
    Wend

    [/autoit]