AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Desktop nach pixel abfragen..

Ein Thema von niceshot · begonnen am 25. Dez 2007 · letzter Beitrag vom 25. Dez 2007
Antwort Antwort
niceshot

Registriert seit: 2. Dez 2007
Ort: Mannheim
9 Beiträge
 
#1

Desktop nach pixel abfragen..

  Alt 25. Dez 2007, 14:46
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
  Mit Zitat antworten Zitat
Benutzerbild von pilic
pilic

Registriert seit: 10. Aug 2006
Ort: Aschbach
131 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Desktop nach pixel abfragen..

  Alt 25. Dez 2007, 15:06
Ich würde es mit zwei verschachtelten For-Schleifen machen.
  Mit Zitat antworten Zitat
niceshot

Registriert seit: 2. Dez 2007
Ort: Mannheim
9 Beiträge
 
#3

Re: Desktop nach pixel abfragen..

  Alt 25. Dez 2007, 16:35
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()
  Mit Zitat antworten Zitat
Benutzerbild von rawsoul
rawsoul

Registriert seit: 29. Okt 2006
Ort: Düsseldorf
249 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Desktop nach pixel abfragen..

  Alt 25. Dez 2007, 17:01
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;
Frank Dumont
  Mit Zitat antworten Zitat
niceshot

Registriert seit: 2. Dez 2007
Ort: Mannheim
9 Beiträge
 
#5

Re: Desktop nach pixel abfragen..

  Alt 25. Dez 2007, 22:28
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
  Mit Zitat antworten Zitat
Benutzerbild von pilic
pilic

Registriert seit: 10. Aug 2006
Ort: Aschbach
131 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Desktop nach pixel abfragen..

  Alt 25. Dez 2007, 22:30
ich bin mir jetzt nicht so sicher ob ich dich richtig verstanden habe, aber ich würde einfach das break weglassen.
  Mit Zitat antworten Zitat
niceshot

Registriert seit: 2. Dez 2007
Ort: Mannheim
9 Beiträge
 
#7

Re: Desktop nach pixel abfragen..

  Alt 25. Dez 2007, 22:43
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]
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz