AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Pixelkoordinaten werden im falschen handel gesucht?
Thema durchsuchen
Ansicht
Themen-Optionen

Pixelkoordinaten werden im falschen handel gesucht?

Ein Thema von rhodan · begonnen am 3. Feb 2011 · letzter Beitrag vom 3. Feb 2011
Antwort Antwort
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#1

Pixelkoordinaten werden im falschen handel gesucht?

  Alt 3. Feb 2011, 22:42
hi..

hab ein problem bei dem ich nicht dahinterkomme...
mein tool schaut ob eine geöffnete google seite in firefox da ist, und wenn ja, schaut auf den beiden koordinaten des grünen "zurückpfeils" sowie des blauen "refresh" pfeils in firefox nach jeweils der farbe der pixels... zumindest SOLL es das wenn diese in der RGB range die ich angegeben habe im bereich grün bzw blau liegen wird, werden die zwei panels im programmfenster grün bzw das andere dann blau gefärbt.
ich möchte mit diesem tool also eigentlich nur kontrollieren ob:

1. in FIREFOX die pixelkoordinaten abgesucht werden (könnte auch ein anderes fenster sein nur firefox hat zu beispielzwecken denke ich fast jeder.). frage ist also ob im richtigen fenster gesucht wird

2. ob die farbe der koordinaten IN firefox richtig erkannt wird, wenn das der fall ist ändert sich die farbe der panels im programm.

leider klappt das nicht...


hier mal der komplette code...zum testen braucht man nur 2 panels, 2 labels und nen timer in die form legen, der einzigste code ist im timer. hab keine ahnung wo der fehler sein könnte, ich denke ich deklariere firefox schon richtig als handle?!

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var
mozilla_hwnd : hwnd;
AColor : Array[1..4] of Byte;
begin
mozilla_hwnd := findwindow(nil,'google - mozilla firefox');
setfocus;
panel1.color:=clBtnFace;
panel2.color:=clBtnFace;

 DWord(AColor) := GetPixel(mozilla_hwnd,29,66); // Die Koordinaten des grünen ZURÜCK pfeils in mozilla
 if (AColor[1] > 70) and (AColor[1] < 76) and (AColor[2] > 161) and (AColor[2] < 168)and (AColor[3] > 72) and (AColor[3] < 78)then
 panel2.color :=clgreen;

 DWord(AColor) := GetPixel(mozilla_hwnd,103,60); // die Koordinaten des blauen REFRESH pfeils in Mozilla
 if (AColor[1] > 19) and (AColor[1] < 25) and (AColor[2] > 94) and (AColor[2] < 100)and (AColor[3] > 230) and (AColor[3] < 238)then
 panel1.color :=clblue;

 Label1.Caption := 'R: ' + IntToStr(AColor[1]) + '; ' +
                    'G: ' + IntToStr(AColor[2]) + '; ' +
                    'B: ' + IntToStr(AColor[3]) + '; ' +
                    'Hex: ' + IntToHex(DWord(AColor),6);

 label2.Caption := 'TColor: $'+IntToHex(DWord(AColor),8);


end;
end.
danke für die hilfe!
ps: damit der zurück button wenn google aufgerufen ist grün ist so das das tool den button auch als grünen erkennt muss man natürlich vorher auf ner anderen seite gewesen sein

lg robin
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Pixelkoordinaten werden im falschen handel gesucht?

  Alt 3. Feb 2011, 23:02
Ich weiß nicht ob Du so überhaupt zu Ziel kommen kannst, ob die Buttons oder deren Parents überhaupt im HDC des des Hauptfensters gemalt werden, aber wenn dann eh nur so:
Delphi-Quellcode:
DC:HDC;
begin
mozilla_hwnd := findwindow(nil,'google - mozilla firefox');
DC := GetDC(mozilla_hwnd);

...
 DWord(AColor) := GetPixel(DC,103,60);
...
 ReleaseDC(mozilla_hwnd,DC)
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#3

AW: Pixelkoordinaten werden im falschen handel gesucht?

  Alt 3. Feb 2011, 23:24
hmm, danke für den tip mit dem DC. ich habs jetzt mal mit nem foto getested, angezeigt in der windows bild- und faxanzeige, aber auch hier klappt die erkennung nicht :S
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Pixelkoordinaten werden im falschen handel gesucht?

  Alt 3. Feb 2011, 23:47
Wenn Du mit einem Delphiform testest, Dir über sein Handle das DC geben lässt und ein paar verschiedenfarbige Panels drauflegst sieht Du wo gegf. das Problem liegt.
Über GetDC(Panelx.Handle) kommst Du dahin wo Du willst, aber über das Formhandle nicht.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  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 10:11 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