AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Pixelfarbe aus anderem Programm auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Pixelfarbe aus anderem Programm auslesen

Ein Thema von carknue · begonnen am 7. Mär 2007 · letzter Beitrag vom 7. Mär 2007
Antwort Antwort
carknue

Registriert seit: 26. Mai 2005
37 Beiträge
 
Turbo Delphi für Win32
 
#1

Pixelfarbe aus anderem Programm auslesen

  Alt 7. Mär 2007, 00:09
Wie kann man aus einem anderen Programm die Farbe eines Pixels seiner Oberfläche auslesen. Hintergrund ist, das andere Programm hat eine Statusanzeige, welche rot oder grün ist und ich möchte gerne protokollieren, wann und wie oft sie grün oder rot ist.
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Pixelfarbe aus anderem Programm auslesen

  Alt 7. Mär 2007, 00:21
Hallo,

ich glaube du meinst sowas hier:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  CurPos: TPoint;
  lDC: HDC;
begin
  //sleep(2000);
  lDC:= GetDC(0);
  if lDC> 0 then
  try
    GetCursorPos(CurPos);//Beispiel
    Color:= GetPixel(lDC, CurPos.X, CurPos.Y);
  finally
    ReleaseDC(0, lDC);
  end;
end;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
carknue

Registriert seit: 26. Mai 2005
37 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Pixelfarbe aus anderem Programm auslesen

  Alt 7. Mär 2007, 22:58
Zitat von bitsetter:

ich glaube du meinst sowas hier:
Ja, aber wie stelle ich den Pixel fest auf eine bestimmte koordinate in der anderen Anwendung. Ich will da nicht mit der Maus draufzeigen müßen. Muß das andere Programm dazu zwingend im Vordergrund sein oder ginge es auch, wenn andere Fenster darüber wären? In den Vordergrund könnte ich es ja noch z.B mit sendkeys holen aber wie lege ich fest, dass immer der Pixel 100,120 in der anderen Anwendung kontrolliert wird, egal wo diese Anwendung auf dem Bildschirm ist.
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Pixelfarbe aus anderem Programm auslesen

  Alt 7. Mär 2007, 23:13
Hi,

wenn du das Handle des Fensters kennst, dann geht es auch so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  CurPos: TPoint;
  lDC: HDC;
  h: HWND;
begin
  h:= findwindow();//oder auch was anderes
  SetForegroundWindow(h);
  lDC:= GetDC(h);
  if lDC> 0 then
  try
    Color:= GetPixel(lDC, 100, 120);
  finally
    ReleaseDC(h, lDC);
  end;
end;
Oder du musst das Handle mit EnumWindows herausfinden.
EDIT: Ich glaube das Fenster muss sich trotzdem im Vordergrund befinden.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  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 14:40 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