Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Pixelfarbe abfragen mit Delphi (https://www.delphipraxis.net/12440-pixelfarbe-abfragen-mit-delphi.html)

LeCorno 27. Nov 2003 13:18


Pixelfarbe abfragen mit Delphi
 
Hallo,
wie kann ich die Farbe eines auf dem Bildschirm sichtbaren Pixels, von dem ich die Koordinaten weiss, abfragen?

Ich will einen bestimmten Bildschirmbereich auf Farbänderungen überwachen, das Delphi Programm soll dabei im Hintergrund laufen.

Habt ihr ne Idee?

Danke für eure Hilfe :coder:

Gruß,
Corny

Kamil 27. Nov 2003 15:23

Re: Pixelfarbe abfragen mit Delphi
 
Vielleicht so:
Delphi-Quellcode:
function GetPixel(Pos: TPoint): TColor;
var
  DC: HDC;
  Handle: HWND;
begin
  Handle:=WindowFromPoint(Pos);
  DC:=GetDC(Handle);
  result:=Windows.GetPixel(DC, Pos.X, Pos.Y);
  ReleaseDC(Handle, DC);
end;
Hab's aber nicht gestestet!

LeCorno 27. Nov 2003 16:59

Re: Pixelfarbe abfragen mit Delphi
 
danke für deine antwort!

die funktion gibt mir nur die farbwerte von pixeln, die auf dem desktop liegen aus. :(
wie kann ich auch pixel in aktiven programmfenstern analysieren ?

gruß
corny

Kamil 27. Nov 2003 19:32

Re: Pixelfarbe abfragen mit Delphi
 
Vielleicht musst du es noch mit ChildWindowFromPoint kombinieren.

LeCorno 27. Nov 2003 19:36

Re: Pixelfarbe abfragen mit Delphi
 
hast du ne idee, wie der quelltext dazu aussehen könnte?

aber danke schonmal :thuimb:

Kamil 27. Nov 2003 19:40

Re: Pixelfarbe abfragen mit Delphi
 
ach, ne... ich glaube du musst die Position (Pos.X und Pos.Y) an das Fenster anpassen (also relative Koordinaten berechnen).

LeCorno 27. Nov 2003 19:50

Re: Pixelfarbe abfragen mit Delphi
 
hmm da bin ich mir nicht sicher.
wenn ich nach dem quellcode vorgehe, den du als erstes gepostet hattest, zeigt das programm mir bei einem pixel in einem aktiven fenster den farbwert '-1'...

-corny :coder:

Kamil 27. Nov 2003 19:54

Re: Pixelfarbe abfragen mit Delphi
 
ich meine es ungefähr so (jetzt müsste es eigentlich funktionieren):
Delphi-Quellcode:
function GetPixel(Pos: TPoint): TColor;
var
  DC: HDC;
  Handle: HWND;
  Rect: TRect;
begin
  Handle:=WindowFromPoint(Pos);
  if GetWindowRect(Handle, Rect) then
  begin
    DC:=GetDC(Handle);
    Pos.X:=Pos.X-Rect.Left;
    Pos.Y:=Pos.Y-Rect.Top;
    result:=Windows.GetPixel(DC, Pos.X, Pos.Y);
    ReleaseDC(Handle, DC);
  end
  else
  begin
    result:=CLR_INVALID;
  end;
  if result=CLR_INVALID then
    raise Exception.Create('Fehler...');
end;
(edit: du könntest auch einfach einen Screenshot erstellen und dort dann die Pixel auslesen...)

LeCorno 27. Nov 2003 20:09

Re: Pixelfarbe abfragen mit Delphi
 
kann das programm jetzt alle pixel, die ich als anwender sehe, abfragen, oder nur die des aktiven fensters?

edit: screenshot schwierig, ich muss ein laufendes programm überwachen...

Kamil 27. Nov 2003 20:29

Re: Pixelfarbe abfragen mit Delphi
 
Alle, die der Anwender sieht. Probier's doch einafch aus...


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:49 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz