Guten Abend an alle
Also irgendwie funktioniert GetPixel nur so halb, aber ich denke eher, dass ich einen Fehler gemacht habe
Ich will einfach während ich spiele, ein Screenshot machen und aus dem Screenshot dann bestimmte Informationen holen (Zahlen). Das hab ich so gelöst, dass ich mir bestimmte Pixel anschaue, sie mit vorgegebenen Mustern von Zahlen vergleiche und dadurch die Zahl bekomme. Das geht in meinem Fall, da die Zahlen alle gleich breit sind und immer an der selben Stelle stehen. Es verändert sich halt nur der Betrag der Zahl. Das funktioniert auch so weit. Jedoch nur, wenn ich z.B. ein Screenshot als Hintergrundbild nehme. Wenn ich im Spiel selbst die Funktion mit GetPixel durchlaufen lasse, gibt GetPixel an jeder Stelle nur den Wert 0 zurück
Hier der Code den ich verwende:
Delphi-Quellcode:
var
imgDC : Cardinal;
begin
imgDC := 0;
try
imgDC := GetDC(0);
for i := 0 to 6 do //7 Pixel prüfen, um eine Zahl zu identifizieren
begin
[...]GetPixel(imgDC, WSDotCoords[i].X, WSDotCoords[i].Y); [...]
end;
finally
if imgDC <> 0 then
ReleaseDC(0, imgDC);
end;
end;
Also wie gesagt, wenn ich das im Spiel mache, gibt GetPixel nur 0 zurück. Das Komische ist aber, wenn ich
imgDC mit BitBlt() an ein
Handle von einem TBitmap übergebe und das Bitmap dann speichere, ist der Screenshot ganz normal da und an den Stellen, die GetPixel() prüfen soll ist definitiv eine Farbe!
Was mach ich denn falsch?
Wusel