Einzelnen Beitrag anzeigen

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