PixelSearch + MouseClick

  • hi leute
    ich habe wieder mal ein problem^^

    also ich möchte ein bestimmtes feld nach einem pixel absuchen.
    wenn der pixel gefunden wurde, möchte ich, dass dieser pixel angeklickt wird.
    aber dieser pixel ist eben in diesem feld, also sind die koordinaten des Pixels unbekannt.

    wie kann ich das nun machen?
    ich habe es mal so probiert

    [autoit]

    $coord = PixelSearch ( 640, 270, 790, 550, 0xAB8860)
    Sleep (5000)
    If Not @error Then
    MouseClick("left", $coord[0], $coord[1])
    Sleep(500)
    MouseClick("left", 540, 600)
    Sleep(800)
    MouseMove(760, 215, 0)
    EndIf

    [/autoit]

    aber da kommt immer eine ERROR meldung mit "MouseClick("left", $coord[0], $coord[1])".
    ich finde einfach nicht heraus wie ich dies hin bekomme :(

    vielen dank im voraus.
    toudward

    Einmal editiert, zuletzt von toudward (10. Februar 2009 um 18:26)

  • Der Fehler liegt in der Sleep-Anweisung, denn du fragst @error nach dem Sleep ab. Sleep läuft ohne Fehler durch und @error ist nicht gesetzt. Daher wird die If-Anweisung auch ausgeführt, obwohl PixelSearch vorher nicht erfolgreich war und somit gar kein Array erstellt hat.
    Darauf hin stürzt dein Programm beim Zugriff auf $coord[0] ab, weil $coord nicht deklariert ist.

  • ouu super, danke, jetzt funktioniert es :D

    und noch eine frage:

    [autoit]

    $coord = PixelSearch ( 640, 270, 790, 550, 0xAB8860)
    Sleep (5000)
    If Not @error Then
    MouseClick("left", $coord[0], $coord[1])
    Sleep(500)
    MouseClick("left", 540, 600)
    Sleep(800)
    MouseMove(760, 215, 0)
    EndIf

    [/autoit]

    "If Not @error Then" bedeutet ja soviel wie, wenn der Pixel gefunden wurde dann...
    aber wie lautet der befehl, wenn der pixel NICHT gefunden wurde dann... ?

    Mit freundlichen Grüssen
    toudward

    • Offizieller Beitrag

    Logisch denken und dann findet man das auch raus .

    [autoit]

    If @error Then

    [/autoit]