PixelSearch

Sucht innerhalb eines bestimmten Bildschirmbereichs nach einem Pixel, das eine bestimmte Farbe hat.

PixelSearch, AusgabeVarX, AusgabeVarY, X1, Y1, X2, Y2, FarbeID , Variation, Modus

Parameter

AusgabeVarX, AusgabeVarY

Namen der Variablen, in denen die X- und Y-Koordinate des ersten Pixels, das die Farbe FarbeID hat, gespeichert werden sollen (wenn das Pixel nicht gefunden wird, werden diese Variablen leer gemacht). Standardmäßig sind Koordinaten relativ zum aktiven Fenster, was aber mit CoordMode geändert werden kann.

Einer oder beide dieser Parameter können leer gelassen werden - in diesem Fall kann mit ErrorLevel (siehe unten) festgestellt werden, ob eine Übereinstimmung gefunden wurde.

X1, Y1

Die X- und Y-Koordinate einer Ecke des rechteckigen Suchbereichs, die den Startpunkt der Suche kennzeichnet (können Ausdrücke sein). Standardmäßig sind Koordinaten relativ zum aktiven Fenster, was aber mit CoordMode geändert werden kann.

X2, Y2

Die X- und Y-Koordinate einer Ecke des rechteckigen Suchbereichs, die den Endpunkt der Suche kennzeichnet (können Ausdrücke sein). Standardmäßig sind Koordinaten relativ zum aktiven Fenster, was aber mit CoordMode geändert werden kann.

FarbeID

Die dezimale oder hexadezimale ID der Farbe, die gesucht werden soll, im BGR-Format (kann ein Ausdruck sein). Farben-IDs können mithilfe des Tools Window Spy (das über das Tray-Menü erreichbar ist) oder via PixelGetColor ermittelt werden. Zum Beispiel: 0x9d6346.

Variation

Eine Zahl im Bereich von 0 bis 255, um die erlaubte Anzahl von Variationsnuancen in beiden Richtungen für die Intensität der Rot-, Grün- und Blaukomponenten der Farbe festzulegen (kann ein Ausdruck sein). Wenn z. B. 2 angegeben ist und FarbeID 0x444444 ist, wird jede Farbe von 0x424242 bis 0x464646 als Übereinstimmung angesehen. Dieser Parameter ist hilfreich, wenn die Farbe des Pixels leicht variiert. Wenn Sie 255 Variationsnuancen angeben, werden alle Farben übereinstimmen. Standardmäßig gelten 0 Variationsnuancen.

Modus

Dieser Parameter kann das Wort Fast, RGB oder beides enthalten (wenn beide vorhanden sind, müssen sie mit einem Leerzeichen voneinander getrennt werden; also Fast RGB).

Fast: Verwendet eine schnellere Suchmethode, die die CPU-Auslastung von PixelSearch in den meisten Fällen drastisch reduziert. Obwohl Farbtiefen bis runter zu 8-Bit (256 Farben) unterstützt werden, schneidet der Fast-Modus bei 24-Bit- oder 32-Bit-Farben wesentlich besser ab. Wenn die Farbtiefe des Bildschirms 16-Bit oder niedriger ist, verhält sich der Variation-Parameter im Fast-Modus geringfügig anders als im Slow-Modus. Außerdem bewirkt der Fast-Modus, dass der Suchbereich nicht spaltenweise, sondern zeilenweise durchsucht wird. Daher wird möglicherweise ein anderes Pixel als das des Slow-Modus gefunden, wenn mehrere Übereinstimmungen vorhanden sind.

Hinweis: Der Standardmodus Slow ist auf den meisten modernen Systemen aufgrund einer Inkompatibilität mit der Desktopgestaltung unbrauchbar, wodurch er um ein Vielfaches langsamer ist.

RGB: Bewirkt, dass FarbeID als RGB- statt BGR-Wert interpretiert wird. Mit anderen Worten, die roten und blauen Komponenten sind vertauscht.

Fehlerbehandlung

[v1.1.04+]: Dieser Befehl ist in der Lage, eine Ausnahme auszulösen, wenn beim Suchen ein Problem auftrat. Weitere Informationen finden Sie unter Laufzeitfehler.

ErrorLevel wird auf 0 gesetzt, wenn die Farbe im angegebenen Bereich gefunden wurde, auf 1, wenn sie nicht gefunden wurde, oder auf 2, wenn der Befehl die Suche aufgrund eines Problems nicht durchführen konnte.

Bemerkungen

Der Suchbereich muss sichtbar sein; das heißt, dass es nicht möglich ist, einen Bereich in einem Fenster zu durchsuchen, das hinter einem anderen Fenster liegt. Pixel unterhalb des Mauszeigers werden in der Regel erkannt. Videospielmauszeiger hingegen verdecken meistens die Sicht auf darunterliegende Pixel.

Die Suchrichtung ist von der Anordnung der Parameter abhängig. Mit anderen Worten: Wenn X1 größer als X2 ist, wird die Suche von rechts nach links durchgeführt, beginnend bei Spalte X1. Entsprechend wird, wenn Y1 größer als Y2 ist, die Suche von unten nach oben durchgeführt. Vor [v1.1.32] erforderte der Fast-Modus jedoch, dass X1 und Y1 die linke obere Ecke sein mussten.

Fast-Modus: PixelSearch startet bei den Koordinaten X1 und Y1 und sucht in der Zeile von X1 bis X2 nach einer Übereinstimmung. Wenn es keine Übereinstimmung findet, wird PixelSearch zeilenweise in Richtung Y2 weitersuchen, bis etwas gefunden wird.

Slow-Modus: PixelSearch startet bei den Koordinaten X1 und Y1 und sucht in der Spalte von Y1 bis Y2 nach einer Übereinstimmung. Wenn es keine Übereinstimmung findet, wird PixelSearch spaltenweise in Richtung X2 weitersuchen, bis etwas gefunden wird.

Wenn der Suchbereich groß ist und die Suche mit hoher Frequenz durchgeführt wird, kann es passieren, dass PixelSearch sehr viel CPU-Zeit in Anspruch nimmt. Um dem entgegenzuwirken, sollte die Größe des Suchbereichs auf ein Minimum beschränkt werden.

PixelGetColor, ImageSearch, CoordMode, MouseGetPos

Beispiele

Sucht innerhalb eines Bereichs des aktiven Fensters nach einem Pixel und speichert in Px und Py die X- und Y-Koordinate des ersten Pixels, das mit der angegebenen Farbe innerhalb von 3 Variationsnuancen übereinstimmt.

PixelSearch, Px, Py, 200, 200, 300, 300, 0x9d6346, 3, Fast
if ErrorLevel
    MsgBox, Die Farbe wurde innerhalb des angegebenen Bereichs nicht gefunden.
else
    MsgBox, Eine Farbe innerhalb von 3 Variationsnuancen wurde auf X%Px% Y%Py% gefunden.