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