![]() |
IsWhite, Red, Black, Green....?
Hey pr0's.
Bin zurzeit dabei eine art bot zu machen, doch ich hab ein problem und komm nicht weiter. Manche von euch kennen doch bestimmt das ACTool indem man seine eigenen makros schreiben kann. Dort gibt es einen befehlt der heist
Delphi-Quellcode:
Also wenn auf der Mouse Position von 309/299 die farbe WEISS erkannt wird macht er das was danach folgt also z.b.
IsWhite 309, 299
Delphi-Quellcode:
Also macht es dann einen rechtsklick, ganz einfach mit diesem tool. Doch gibt es solche funktionen auch bei delphi ?
IsWhite 309, 299
RightClick |
Re: IsWhite, Red, Black, Green....?
Natürlich kann man so etwas auch mit Delphi machen.
|
Re: IsWhite, Red, Black, Green....?
Zitat:
Doch wie heist diese funktion, hab in der sufu/google nichts gefunden bzw. wusste ich granicht wirklich nach was ich suchen soll. |
Re: IsWhite, Red, Black, Green....?
Schau dir mal
Delphi-Quellcode:
an.
Form.Canvas.Pixels[]
|
Re: IsWhite, Red, Black, Green....?
Erstmal musst du an die Bildinformationen kommen. benutz mal die Forensuche!
mkinzler: Ich glaube es geht um globale Pixel |
Re: IsWhite, Red, Black, Green....?
Also.
Ich hab es mal so versucht:
Delphi-Quellcode:
oder mir #FFFFFF oder so zeugs bekomm aber
Canvas.Pixels[5,5] := 'white'
Delphi-Quellcode:
lösung?
[Error] Unit1.pas(29): Incompatible types: 'TColor' and 'String'
und eh was sind globale pixel ? und ich weis nicht nach was ich genau suchen muss. sorry edit: ok clWhite geht, bin mal probieren :) edit2: also ich hab jetzt:
Delphi-Quellcode:
Also sollte es auf Cordinaten 5,5 weiss sein sollte doch msg kommen, oder nich? geht aber irgendwie nicht. :(
procedure TForm1.Button1Click(Sender: TObject);
begin if Canvas.Pixels[5,5] = clWhite then ShowMessage ('xD'); end; |
Re: IsWhite, Red, Black, Green....?
Meine Lösung betrachtet nur den Canvas einer Form.
Wie die Fehlermeldung schon aussagt kannst du Pixel nicht mit einem String vergleichen, da sie vom Typ TColor sind:
Delphi-Quellcode:
if Canvas.Pixels[5,5] = clWhite then ...
|
Re: IsWhite, Red, Black, Green....?
Ahja, dann sind also globale pixel auch die pixel aushalb der form.
Innerhlab geht es mit damit. Doch wie würde das aushalb gehen, oder wie ist da begriff für so etwas damit ich suchen kann ? :-D |
Re: IsWhite, Red, Black, Green....?
Hier
![]() findest du Code um an den Canvas des Desktops heranzukommen. |
Re: IsWhite, Red, Black, Green....?
dankeee :)
Nur dann sollte das so eigenglich klappen oder?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var DCanvas: TCanvas; DHandle: HWND; begin DHandle:=GetDC(0); if DHandle<>0 then begin try DCanvas:=TCanvas.Create; try if DCanvas.Pixels[5, 5] = clWhite then ShowMessage ('x'); finally DCanvas.Free; end; finally if ReleaseDc(0, DHandle)<>1 then RaiseLastOSError; end; end else RaiseLastOSError; end; |
Re: IsWhite, Red, Black, Green....?
Hallo k4ni.
Kann den Code gerade nicht testen. Funktioniert er denn? Erstelle einfach ein zweites Form mit Hintergrundfarbe clWhite und schiebe es so, dass bei Koordinate 5|5 der Bildpunkt weiß ist. Wenn es funktioniert, solltest du dir aber noch Gedanken darüber machen, ob du wirklich 100% Weiß (256 Rot, 256 Grün, 256 Blau) oder alle Weißtöne erkennen willst. Im zweiteren Fall (was bei Head-Shot-Bots o.ä. sinnvoll wäre) musst du deine TColor der Bildkoordinate in die Bestandteile R, G und B aufteilen und dann analysieren, welche Spektralfarbe sich ergibt. Wenn du diesbezüglich Hilfe brauchst, kannst du natürlich fragen. Gruß blackdrake |
Re: IsWhite, Red, Black, Green....?
Nein, das geht so nicht, weil du zwar nett das Handle bekommst aber dann unabhängig davon einfach ein TCanvas Createst und damit rumspielst.
|
Re: IsWhite, Red, Black, Green....?
Du hast vergessen den neu erzeugten Canvas zu verbinden:
Delphi-Quellcode:
DCanvas.Handle:=DHandle;
|
Re: IsWhite, Red, Black, Green....?
Also ne der code geht nicht wie eben von inherited gesagt. Werd gleich nochma reinschauen.
Zu den farben: Es handelt sich um eine 2D anwendung. Farbcode: #EFEFEF R: 239 G: 239 B: 239 Wie kann ich das dann benützen ? edit: Vielen dank mkinzler daran lags, jetzt geht das perfekt! :) Jetzt muss ich nur noch testen ob EFEFEF auch als clWhite angesehen wird. |
Re: IsWhite, Red, Black, Green....?
Nein EFEFEF ist nicht weiß (FFFFFF)
Delphi-Quellcode:
if DCanvas.Pixels[5, 5] = RGB(239 239, 239 ) then ...
|
Re: IsWhite, Red, Black, Green....?
THX AN ALLE!
Danke an alle die mir eben geholfen haben! Danke fuer schnellen und hilfreichen support. Klappt super. THANX |
Re: IsWhite, Red, Black, Green....?
Statt RGB(XX,XX,XX) zu nehmen kannst du auch direkt auf #EFEFEF prüfen, allerdings dabei beachten dass die Angabe als Big Endian erfolgt, also du nicht RGB, sondern BGR-Reihenfolge hast
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz