Auf Fensterinhalt eines anderen Programms zugreifen

Sentoo

Erfahrenes Mitglied
Hallo zusammen,

klingt erst einmal gefährlich gell? Deswegen vorab was ich vorhabe: Ich möchte einen Dirty Litty Poker Helper entwickeln. Keinen Bot, sondern ein Tool, das mir anzeigt wie z.B. die Gewinnquote ist und das mein Spielverhalten protokolliert, damit ich mich verbessern kann.

Um so mehr ich im Internet dazu suche, um so sicherer werde ich, dass ich dazu am Besten C# lerne :) Aber ich dachte mir, bevor ich die Flinte ins Korn werfe frage ich euch mal, hier sind ja pfiffige Menschen unterwegs.

Das einfachste scheint mir bisher zu sein, dass ich per
Code:
java.awt.Robot#createScreenCapture( ... );
einen Screenshot mache und mich an den Pixeln orientiere. Allerdings wäre es mit dem Zugriff auf die Fensterinhalte deutlich schneller ...

Gruß Sen
 
Java von sich aus kann nicht auf fremde Prozesse zugreifen. Dazu wirst du wohl oder übel die WinAPI anwenden müssen. Dafür brauchst du kein C# lernen, diese kannst du auch mit Java nutzen, z.B. über JNA.

Das mit dem Screenshot und den Pixeln würde ich sein lassen. Es dauert ziemlich lange all die Pixel auszuwerten und einen halbwegs vernünftigen Algorhytmus zu entwickeln, der den Screenshot analysieren und auswerten kann dauert zudem um einiges länger (falls du es schaffst). Es gibt einige Biliotheken, die nach Mustern suchen können, aber ob die was taugen weiß ich nicht, hab noch keine benutzt.
 
Das mit dem Screenshot und den Pixeln würde ich sein lassen.
Jap, denke ich mir auch. Das dauert zu lange. Damit meine ich nicht das umsetzen, sondern die Rechenzeit.

Ich lese mich gerade durch die Artikelreihe "How I Built a Working Poker Bot" auf Coding the Wheel. Er beschreibt dort recht gut, wie man an die Informationen ran kommt. Für die Ungeduldigen, im vierten Teil gibt es ein C++ Projekt in das man als Template benutzen kann :)

Jetzt müsste ich mir den relevanten Code wrappen, mal sehn, mal sehn.
 
Jap, denke ich mir auch. Das dauert zu lange. Damit meine ich nicht das umsetzen, sondern die Rechenzeit.
Ich meinte in meinem Post beides, aber problematischer wäre eben die Umsetzung. Die Rechenzeit kann man bis zu einem gewissen Teil dann auch runterschrauben, kommt auf den Algo an, den man da bastelt.

Aber das mit C++ klingt interessant, könnte man sich ja mal anschauen, kann man sicher noch für andere Sachen gebrauchen ;)
 
Zurück