Problem mit If-Schleife...Else wird trotz Erfüllung mit ausgeführt!

  • Huhu,

    habe ein kleines Problem...

    arbeite mich zur Zeit etwas in Autoit ein (gestern angefangen) u wollte gerade ne if schleife bauen, welche schaut, ob ein bestimmter pixel nach wie vor die richtige Farbe hat. Das ganze ist in einer while-schleife eingebettet.

    Code lautet so:

    Problem ist, dass - auch wenn die if-Bedingung erfüllt ist - die else-Bedingung zusätzlich zur if-Bedingung ausgeführt wird...

    An dem hier liegts schonmal nicht: if $farbe = 'CE0000' Then ... habe es mal in if $farbe = 0xCE0000 Then geändert, funktioniert aber auch nicht :/

    Würde mich über Hilfe freuen,

    mfg

  • @mods: sieht für mich nach nem bot aus und sollte daher geclosed werden...

  • ja, es sieht so aus...

    ich bin nur einfach gerade dabei verschiedene Möglichkeiten von Autoit auszuprobieren/zu testen, um etwas dabei zu lernen...Dabei kommen auch solche Sachen vor, wird doch nicht verboten sein, zu wissen wie das und das funktioniert ;)

    Einmal editiert, zuletzt von Muhkuh (28. Mai 2009 um 09:45)

  • Na dann wurde die Farbe wohl nicht gefunden.
    @oliverh: PixelGetColor ist keine verbotene Funktion, solange es nicht zu eindeutig ist, hilft es auch keinen Bottern, die sich hierher googlen.

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Na dann wurde die Farbe wohl nicht gefunden.
    @oliverh: PixelGetColor ist keine verbotene Funktion, solange es nicht zu eindeutig ist, hilft es auch keinen Bottern, die sich hierher googlen.

    dochdoch, er findet die farbe schon, problem ist nur, dass - auch WENN er die Farbe findet und die if-Anweisung ausführt - die else-Bedingung trotzdem ausführt.

  • [autoit]

    $pixel = PixelGetColor (549, 68)
    $farbe = Hex($pixel, 6)

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

    if $farbe = 'CE0000' Then
    ToolTip('Found...',0,0)
    MsgBox(0,"","War in IF")
    Else
    MsgBox(0,"","War in ELSE")
    ToolTip('Searching ...',0,0)
    Send("{ESC}")
    sleep(400)
    Send("" & $makro)
    sleep(200)

    endif

    [/autoit]


    Probier mal

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • dochdoch, er findet die farbe schon, problem ist nur, dass - auch WENN er die Farbe findet und die if-Anweisung ausführt - die else-Bedingung trotzdem ausführt.


    Ich würde ja mal vermuten, dass der umgebende Code die Ursache des Problems ist, womit wir mal wieder beim Thema 'Kaffesatzleserei' wären.
    Was stellt denn zum Beispiel dein Makro an, oder wann bzw. wie oft wird denn der o.a. Code ausgeführt?

    Gruß Ashpool

    Zitat von mir

    Bin immer wieder erstaunt, wie begrenzt ein Horizont sein kann.

  • Hallo,

    ,
    das wäre die erste Variable die zu einer bestimmten Zeit 2 verschiedene Zustände haben kann,

    Beweis das es nich an IF .. THEN .. ELSE.. ENDIF liegen kann:

    Spoiler anzeigen
    [autoit]

    $farbe = 'CE0000'; Hex($pixel, 6)

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

    if $farbe = 'CE0000' Then
    MsgBox(64,"IF wird ausgeführt","")
    ;ToolTip('Found...',0,0)

    Else

    MsgBox(64,"ELSE wird ausgeführt!","")
    ;ToolTip('Searching ...',0,0)
    ;Send("{ESC}")
    sleep(400)
    ;Send("" & $makro)
    sleep(200)

    endif

    [/autoit]

    , um aber den Fehler analysieren zu können müsste man das ganze Skript sehen,

    mfg (Auto)Bert