Entwickler-Ecke
Windows API - Handles in fremdem Programm finden ohne enumChildWindows?
Quetzal90 - Mi 18.11.09 21:38
Titel: Handles in fremdem Programm finden ohne enumChildWindows?
Hi
Also ich hatte gerade mal ein Programm geschrieben dass beim Pokern helfen sollte.
Und zwar funktionierte das erstmal sehr bescheiden indem es einfach nen Screenshot vom Pokerraum macht,
in meinem Fall von FullTilt, und dann an der entsprechenden Stelle nach Karten sucht und diese anhand von
Bildern identifizert. Also Screenshot machen, Karten vom Board ausschneiden und mit Vergleichskarten abgleichen.
Und dann halt Gewinnmöglichkeiten errechnen usw.. klappte an sich ja auch ganz gut.. nur kostet das Bilder abgleichen
ja dann doch recht viel Zeit, und abgesehen davon muss die Auflösung gleichbleiben udn es ist nicht sonderlich elegant.
dann hab ich mir überlegt nach Handles zu suchen von den Buttons und allem was da so rumschwirrt um so vielleicht die
nötigen Informationen schneller zu erhalten. Allerdings klappte das über EnumWindows und EnumChildWindows und diese
Sachen nicht, da keine Handles gefunden werden außer denen vom Fenster. Wird wohl bedeuten dass es keine üblichen Windows-
Komponenten sind?
Beim Suchen ist mir dann ein Programm aufgefallen was genau die Sachen macht die ich will:
http://www.holdemindicator.com/
So viel Text für wenig Frage: ;)
Hat vielleicht ne idee wie die das machen? oder allgemein wie man das hinkriegen könnte? Ansätze?
Danke fürs Lesen :)
Wer was weiß bitte melden :)
Moderiert von
Narses: Topic aus VCL (Visual Component Library) verschoben am Mo 23.11.2009 um 11:05
SAiBOT - Mo 23.11.09 14:33
Wenn du keine handles kriegst kannst du es noch über Textout-hooks probieren.
Ich weiß nicht wie es bei Fulltilt ist, aber bei Partypoker funktioniert es.
Andere Möglichkeiten als eine visuelle Auswertung wirst du wohl sonst nicht haben befürchte ich :nixweiss:
Allerdings dauert es nur wenige ms., wenn man nur einzelne Pixel scannt, anstatt wie du Bilderteile. Da spreche ich aus Erfahrung 8):
http://evilsoft.de/partypokeroddscalc/
Ansonsten mal googeln da gibt es irre viel Zeug wie z.B. das:
http://www.codingthewheel.com/archives/how-i-built-a-working-poker-bot
uall@ogc - Di 24.11.09 20:16
Mit hooksist das alles relativ einfach (Sofern man damit umgehene kann). Ein Hook auf TextOut z.b. funktioniert ganz gut, besser ist es natürlich wenn man direkt auf die einzelnen Records im Speicher zugreift. Dann läuft das auch alles im Hintergrund und mit mehreren Tables.
Etwas was nie fertig geworden ist:
http://uall.cheat-project.com/ppbot/pic.jpg
Flamefire - Sa 28.11.09 11:26
ich würde dir 2 dinge empfehlen
1) suche nach autoit. da hast du nen window info tool, dass dir auch subfenster (die meisten) anzeigt. damit kannste gucken, ob da überhaupt ein button o.ä. ist und wie/ob du den identifizieren kannst
2) ne dll schreiben, injecten und dann auf die dll zugreifen. mit der dll kannste dann entweder über hooks oder reversing an die strukturen kommen
SAiBOT - Sa 28.11.09 12:06
Wenn es mit EnumChildWindows nicht klappt wird es mit deinem Autoit tool auch nicht klappen.
Boldar - Sa 28.11.09 22:04
hä? AutoIt ist doch eine Scriptsprache.
Meinst du Winspy?
Aber ich dachte, in kostenpflichtigen Pokerprogrammen, wo um Geld gespielt wird, ist sowas verboten?
edit: Ist laut AGB dort wohl erlaubt.
SAiBOT - So 29.11.09 17:33
Solange das Ganze, wie oben erwähnt nicht reversed wird, befindet sich sowas wohl in einer gesetzlichen Grauzone.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!