![]() |
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:
ich komm grad nicht weiter.
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 bitte um hilfe wens geht ne ergänzung. mfg |
Re: Desktop nach pixel abfragen..
Ich würde es mit zwei verschachtelten For-Schleifen machen.
|
Re: Desktop nach pixel abfragen..
Delphi-Quellcode:
hier die funktion desktopcolor()function DesktopColor(const X, Y: integer): TColor; var DC: HDC; begin DC := GetWindowDC(GetDesktopWindow); Result := GetPixel(DC, X, Y); ReleaseDC(GetDesktopWindow, DC) end; |
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; |
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 |
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.
|
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