Ich habe noch eine andere Funktion geschrieben, kannst ja mal testen ob die anders ist:
Delphi-Quellcode:
function ColorToleranz(SollColor, IstColor: TColor; Toleranz: Byte): boolean;
var
rSoll, gSoll, bSoll, rIst, gIst, bIst: byte;
begin
Result:= false;
SollColor := ColorToRgb(SollColor);
rSoll := GetRvalue(SollColor);
gSoll := GetGvalue(SollColor);
bSoll := GetBvalue(SollColor);
IstColor := ColorToRgb(IstColor);
rIst := GetRvalue(IstColor);
gIst := GetGvalue(IstColor);
bIst := GetBvalue(IstColor);
if (rIst >= rSoll- Toleranz) and (rIst <= rSoll + Toleranz) and
(gIst >= gSoll- Toleranz) and (gIst <= gSoll + Toleranz) and
(bIst >= bSoll- Toleranz) and (bIst <= bSoll + Toleranz) then
Result := true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
DCFarbe: TColor;
begin
DCFarbe := GetPixel(DesktopDC, Mouse.CursorPos.X, Mouse.CursorPos.Y);
if ColorToleranz(clGreen, DCFarbe, 20) then//max 255
begin
mouse_event(MOUSEEVENTF_RIGHTDOWN, Mouse.CursorPos.X, Mouse.CursorPos.Y, 0, 0);
mouse_event(MOUSEEVENTF_RIGHTUP, Mouse.CursorPos.X, Mouse.CursorPos.Y, 0, 0);
end;
end;
Obwohl was ist denn das $B5D4F19E für eine Farbe?
z.B. Blau = $FF0000
Es kann natürlich auch sein, dass es so eine Funktion schon irgendwo gibt.