PixelSearch

  • Hallo,

    ich habe folgendes Problem mit Pixelsearch.
    1. Ich habe mein Fenster maximiert und die Daten in Pixelsearch eingetragen

    Das Script funktioniert

    2. Ändere ich die Fenstergröße, dann stimmen die Daten logischerweise nicht mehr

    Das Script funktioniert nicht

    Wie kann ich das ganze abfangen. Was passiert wenn die Bildschirmauflösung geändert wurde?

    Hier mein Script

    [autoit]


    Opt('PixelCoordMode', 0)
    $pixel = PixelSearch(2180,196,2284,242,0x4C8EFB)
    if IsArray ($pixel) = true Then
    Msgbox(0,"","gefunden")
    ;MouseClick("left")
    endif

    [/autoit]

    Grüße
    Ilse :(

    2 Mal editiert, zuletzt von Ilse (24. Februar 2012 um 13:46)

  • Mit

    [autoit]

    WinGetPos

    [/autoit]

    kannst die Positon und Größe eines Fensters ermitteln.

    Also so in etwa:

    Spoiler anzeigen
    [autoit]

    $pos = WinGetPos("Fenstername")

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

    $pixel = PixelSearch($pos[0], $pos[1], $pos[0] + $pos[2], $pos[1] + $pos[3], 0x4C8EFB)
    If IsArray($pixel) = True Then
    MsgBox(0, "", "gefunden")
    EndIf

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hallo Chip,

    merci, habe es aber noch nicht zum laufen gebracht!

    Zum Testen:
    Das ist die Seite

    [autoit]


    http://translate.google.de/?hl=de&tab=wT#de|es|test

    [/autoit]

    Wenn die blaue Schaltfläche da ist (Übersetzen... ist ja zu sehen)
    dann Msgbox und Klick

    [autoit]


    $pos = WinGetPos("Google")

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

    $pixel = PixelSearch($pos[0], $pos[1], $pos[0] + $pos[2], $pos[1] + $pos[3], 0x4C8EFB)
    If IsArray($pixel) = True Then
    MsgBox(0, "", "gefunden")
    MouseClick("left")
    EndIf

    [/autoit]

    muß ich noch etwas #includen?

    Grüße
    Ilse ;)

  • Hallo Twodollarbillie,

    hatte auch schon daran gedacht...
    aber mal folgende Frage an dich:

    Wenn ich einen Bereich als *.bmp in einer bestimmten "AUFLÖSUNG" mache,
    und später der PC eine andere Auflösung hat,
    funktioniert dann immer noch IMAGESEARCH?
    Das Bild ist ja dann viel kleiner, größer evtl. breiter....

    Liebe Grüße

    Ilse ;)

  • mit einer gewissen toleranz eventuell schon.
    ansonsten müsste man verschiedene bmp's für verschiedene auflösungen machen.
    wäre natürlich ein wenig umständlich, andererseits wäre hundertprozentige treffsicherheit garantiert.
    bei pixelsearch können ja auch mal andere pixel gefunden werden, die eigentlich nicht gefunden werden sollten ;)

    [align=center]Meine Werke mit der Irrlicht Engine
    AutoIt Picture Viewer Dreidimensionaler Bildbetrachter
    Mr Bubble 3D Neue Interpretation des Flashklassikers Bubble trouble

  • Hi,

    Zitat

    bei pixelsearch können ja auch mal andere pixel gefunden werden, die eigentlich nicht gefunden werden sollten

    Ja, aber nur, wenn völlig dilletantisch nach EINEM Pixel gesucht wird^^
    Man sucht eigendlich immer nach einem bestimmten Bereich, also mehreren Pixeln. Da lässt man dann z.B. das obere linke Pixel suchen und vergleicht den gefundenen Bereich mit z.B. PixelChecksum().
    Icons und Buttons werden sehr selten dynamisch erstellt, d.h. bei unterschiedlicher Bildschirmauflösung sind die "Bilder" immer gleich groß (Breite x Höhe).
    PushtheButton sucht und klickt übrigens immens schnell und erstellt auch gleich noch die "Suchbilder":thumbup: