PixelSearch

Durchsucht einen Bereich des Bildschirms, um einen Pixel mit einer bestimmten Farbe zu finden.

PixelSearch, AusgabeX, AusgabeY, X1, Y1, X2, Y2, Farbkennung , Variation, Fast|RGB

Parameter

AusgabeX/Y

Namen der Variablen, in denen die X/Y-Koordinaten des ersten Pixels, das mit Farbkennung übereinstimmt, gespeichert werden sollen (wenn das Pixel nicht gefunden wird, werden diese Variablen leer gemacht). Koordinaten sind relativ zum aktiven Fenster, sofern das nicht mit CoordMode geändert wurde.

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/Y-Koordinaten der oberen linken Ecke des zu durchsuchenden Rechtecks, die Ausdrücke sein können. Koordinaten sind relativ zum aktiven Fenster, sofern das nicht mit CoordMode geändert wurde.

X2, Y2

Die X/Y-Koordinaten der unteren rechten Ecke des zu durchsuchenden Rechtecks, die Ausdrücke sein können. Koordinaten sind relativ zum aktiven Fenster, sofern das nicht mit CoordMode geändert wurde.

Farbkennung

Die dezimale oder hexadezimale der zu suchenden Farbkennung im BGR-Format, die ein Ausdruck sein kann. Farbkennungen können mithilfe von Window Spy (über das Tray-Menü erreichbar) oder via PixelGetColor ermittelt werden. Zum Beispiel: 0x9d6346.

Variation

Eine Nummer zwischen 0 und 255, die den Farbtontoleranzbereich der Rot-, Grün- und Blaukomponenten von der angegebenen Farbe kennzeichnet (kann ein Ausdruck sein). Dieser Parameter ist hilfreich, wenn die gesuchte Farbe nicht immer den gleichen Farbton hat. Wenn Sie 255 Farbtonvarianten angeben, werden alle Farben gefunden. Standardmäßig gelten 0 Farbtonvarianten.

Fast|RGB

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

Fast: Ermöglicht eine schnellere Suchmethode, die den CPU-Verbrauch beim Suchen in den meisten Fällen drastisch reduziert. Zwar werden niedrige Farbtiefen wie 8-Bit (256 Farben) unterstützt, allerdings ist der Fast-Modus bei 24-Bit- oder 32-Bit-Farben deutlich leistungsfähiger. Hat der Bildschirm eine Farbtiefe von 16-Bit oder niedriger, könnte sich der Variation-Parameter im Fast-Modus etwas anders verhalten, als wie im Slow-Modus. Der Fast-Modus durchsucht den Bildschirm reihenweise (von oben nach unten), anstatt spaltenweise. Demzufolge findet er einen Pixel, das sich vom im Slow-Modus gefundenen Pixel unterscheidet könnte, sofern es mehr als einen übereinstimmenden Pixel gibt.

RGB: Lässt Farbkennung als RGB- statt BGR-Wert interpretieren. Das heißt, dass die roten und blauen Komponenten vertauscht sind.

ErrorLevel

[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 angegeben Bereich gefunden wurde, auf 1, wenn sie nicht gefunden wurde, oder auf 2, falls der Befehl daran gehindert wurde, die Suche durchzuführen.

Bemerkungen

Der Suchbereich muss sichtbar sein; das heißt, dass es nicht möglich ist, einen Bereich in einem Fenster zu suchen, das hinter einem anderen Fenster liegt. Pixel, die unterhalb des Mauszeigers sind, werden in der Regel erkannt. Spiele-Mauszeiger hingegen behindern die Sicht auf darunterliegende Pixel in den meisten Fällen.

Gilt nur für den Slow-Modus: Standardmäßig beginnt die Suche im oberen linken Pixel des Bereichs und geht dann vertikal nach unten, um eine Überstimmung zu finden. Findet die Suche dort keine Übereinstimmung, geht sie weiter nach rechts, Spalte für Spalte, bis sie einen passenden Pixel findet. Die übliche Links-nach-Rechts-Suche kann man durch Vertauschen der X1- und X2-Parameter umkehren. Also wenn X1 größer als X2 ist, wird die Suche von rechts nach links durchgeführt, beginnend bei Spalte X1. Und wenn Y1 größer als Y2 ist, wird die Suche bei jeder Pixelspalte unten statt oben beginnen. Eine Suche in einem großen Bereich und mit hoher Frequenz kann zu einem hohen CPU-Verbrauch führen. Um diesen Verbrauch zu verringern, hält man die Größe des Bereichs so klein wie möglich.

Siehe auch

PixelGetColor, ImageSearch, CoordMode, MouseGetPos

Beispiel

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 mit drei Farbtonvarianten wurde bei X%Px% Y%Py% gefunden.