Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Desktop nach pixel abfragen.. (https://www.delphipraxis.net/105591-desktop-nach-pixel-abfragen.html)

niceshot 25. Dez 2007 14:46


Desktop nach pixel abfragen..
 
hallo,

ich hab folgendes Problem und zwar will ich mein desktop nach 'Pixel' abfragen wen sie existiert soll es ne Melduung ausgeben .

Delphi-Quellcode:
while Desktopcolor(x,y)<>RGB(11,186,79) do

begin
if Desktopcolor(x,y)=RGB(11,186,79) then
showmessage('Found');
repeat
x:=x+1;
y:=y+1;

until x and y=1024;
ich komm grad nicht weiter.
ich bitte um hilfe wens geht ne ergänzung.

mfg

pilic 25. Dez 2007 15:06

Re: Desktop nach pixel abfragen..
 
Ich würde es mit zwei verschachtelten For-Schleifen machen.

niceshot 25. Dez 2007 16:35

Re: Desktop nach pixel abfragen..
 
Delphi-Quellcode:

function DesktopColor(const X, Y: integer): TColor;
var
  DC: HDC;
begin
  DC := GetWindowDC(GetDesktopWindow);
  Result := GetPixel(DC, X, Y);
  ReleaseDC(GetDesktopWindow, DC)
end;
hier die funktion desktopcolor()

rawsoul 25. Dez 2007 17:01

Re: Desktop nach pixel abfragen..
 
Delphi-Quellcode:
var
  pos:tpoint;
begin
for i:=0 to screen.width-1 do
  for j:=0 to screen.height-1 do
    if desktopcolor(i,j)=RGB(11,186,79) then begin pos:=point(i,j); break end;
showmessage('Pixel gefunden bei: ('+inttostr(pos.x)+'|'+inttostr(pos.y)+')');
end;

niceshot 25. Dez 2007 22:28

Re: Desktop nach pixel abfragen..
 
hallo hab nun ein weiteres Problem.
wen die Pixel zweimal auftaucht läuft nun nicht mein Programm.
Kann man zb. zwei nebeneinander stehende Pixel zusammen abfragen oder mehrere zb 4 oder 5 nebeneinander stehende Pixeln.??


mfg

pilic 25. Dez 2007 22:30

Re: Desktop nach pixel abfragen..
 
ich bin mir jetzt nicht so sicher ob ich dich richtig verstanden habe, aber ich würde einfach das break weglassen.

niceshot 25. Dez 2007 22:43

Re: Desktop nach pixel abfragen..
 
ich will eine bestimmte pixel suchen.. nun ist mein prob wen die gleiche pixel mit gleichen farbwerten 2,3,4 oder 5 auftaucht.
wie kann ich zb 4 pixel aufeinmal suchen . 4 pixel die nebeneinander sind die irgendwo auf dem desktop sind.


so könnte ich es mir vorstellen klappt aber net..

Delphi-Quellcode:
for i:=0 to screen.width-1 do
  for j:=0 to screen.height-1 do
    if desktopcolor(i,j)=RGB(189,190,189) and desktopcolor(i+1,j)=RGB(145,154,121) then
    begin
    pos:=point(i,j);
    break
    end;



mfg

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 Uhr.

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