Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Pixel in Anwendung erkennen!!! (https://www.delphipraxis.net/105695-pixel-anwendung-erkennen.html)

InZiDeR 27. Dez 2007 19:42


Pixel in Anwendung erkennen!!!
 
Hallo liebes Forum!!!
Ich möchte mal wieder ein kleines Programm machen.
Doch da bräuchte ich eventuell Hilfe.
Ich bin noch anfänger in Delphi, und daher habe ich auch kaum Ahnung.

Ich möchte folgendes machen:
Das Programm soll erkennen wenn eine bestimmte Farbe sich im Bild ändert, und entsprechend reagieren.
Nun der Punkt an dem ich persönlich nicht weiterkommen ist das mit dem Erkennen vom Pixel?/Farbcode? im Programm.
Ich weiß nicht wo ich nach sowas suchen soll.

Zur Anmerkung:
-Nein das soll kein Bot/Macro oder sonst irgendwas werden was irgendwie gegen die Rechte des jeweiligen Spieles verstöhst.
-Nein das soll kein Aimbot für irgendein Ego-Shooter werden.

Es ist folgendes: Ich spiele ein Online Spiel, und beim "Kämpfen" achte ich nicht so auf meine "HP" Lebenspunkte Anzeige.
Wenn die Lebenspunkteanzahl runtergeht, soll es einen Ton von sich geben das es zu niedrig ist, damit ich entsprechend reagieren kann :-D


mfg Patrick aka InZiDeR

ferby 27. Dez 2007 20:01

Re: Pixel in Anwendung erkennen!!!
 
Hallo,

also mir würde daweil nur eine Möglichkeit einfallen, die aber etwas rechenlastig sein wird:
Einfach alle x - Sekunden ein Screenshot machen, und das einfach mit dem vorrigen Screenshot vergleichen.

Wie man Screenshots macht, findest du im Forum. Und einzelne Pixel vergleichen auch.


Was anderes fällt mir grad nicht ein

InZiDeR 27. Dez 2007 20:04

Re: Pixel in Anwendung erkennen!!!
 
Aua, mein armer Processor/Arbeitsspeicher....
Echtmal, gibt es keine andere Lösung???

Apollonius 27. Dez 2007 20:06

Re: Pixel in Anwendung erkennen!!!
 
Es geht deutlich einfacher. Man muss sich nur mit GetDC(0) den Device Context des Desktops holen und dann mit MSDN-Library durchsuchenGetPixel die Farbe des betreffenden Pixels erfragen. Am Ende gibt man den DC mit ReleaseDC frei.

Aurelius 27. Dez 2007 20:12

Re: Pixel in Anwendung erkennen!!!
 
Es kommt auf das Intervall an und was du alles vergleichst. Einmal pro 2 Sekunden sollte eigentlich reichen, dazu kannst du einen Timer nutzen und das Intervall auf 2000 stellen.

Bei Screenshot könnte man den zu fotografierenden Ausschnitt des Bildschirmes anpassen oder, wenn das nicht gehen sollte, bei der Überprüfung des Bildes nur den nötigen Ausschnitt in Betracht ziehen (wenn der Balken links oben ist wäre es schwachsinnig unten links zu gucken).

InZiDeR 27. Dez 2007 20:14

Re: Pixel in Anwendung erkennen!!!
 
Dankeschön, ich gucks mir mal an :)

Einen guten Rutsch euch, die ihr mir geholfen habt ^^

InZiDeR 27. Dez 2007 20:19

Re: Pixel in Anwendung erkennen!!!
 
Scheiße, das ist wohl doch komplizierter als ich dachte.
Also wie mach ich das jetzt das
http://img155.imageshack.us/img155/7915/testxu1.jpg
Kann mir einer ein kleines Beispielsource schreiben?
Wäre dankbar. Wenn zb Der Rote balken an einer bestimmten Position nichtmehr Rot ist!!!

Aurelius 27. Dez 2007 20:24

Re: Pixel in Anwendung erkennen!!!
 
Beispielsource gibts von mir nicht (dazu habe ich nicht die Erfahrung und die Zeit), aber ich kann dir ein paar überlegungen geben:

1.) Du musst überprüfen vo der Balken anfängt. Dazu am besten eine Schleife nutzen und pixel für pixel absuchen, am besten links oben anfangen, dann 100 Pixel oder so nach unten. Ist dort nix rotes ein Pixel weiter und nochmal 100 Pixel nach unten usw.

2.) hast du den Balken gefunden "nach rechts" gehen und die Farbe überprüfen.

3.) ist dieser schwarz und hat deine gewünschte länge den Ton ausgeben

InZiDeR 27. Dez 2007 20:26

Re: Pixel in Anwendung erkennen!!!
 
Danke, ist sehr nett von dir.

Noch einen guten Rutsch ins neue Jahr!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 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