Einzelnen Beitrag anzeigen

Benutzerbild von Wusel
Wusel

Registriert seit: 27. Sep 2003
Ort: Riesa
54 Beiträge
 
Delphi 6 Personal
 
#1

GetPixel() funktioniert irgendwie nicht :(

  Alt 23. Jan 2005, 20:45
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
  Mit Zitat antworten Zitat