Frage von Ice999va, 25

kann man ein programm entwickel das in spielen den text lesen kann und dann von ausen zugreifen kann über text befehle?

Expertenantwort
von TeeTier, Community-Experte für programmieren, 10

Ja das geht. Neben der Variante von "CrystalixXx" gibt es noch die Quick-And-Dirty-Anfänger-Möglichkeit. :)

Dazu musst du dir nur in einer Skriptsprache deiner Wahl, die Screenshot-Library deiner Wahl mit der OCR-Bibliothek deiner Wahl zusammenkleben.

Zugegeben, die Methode von "CrystalixXx" ist eleganter, schöner und effizienter, aber wenn du es so machst, wie hier beschrieben, dann bist du in 20 bis 30 Zeilen Skriptcode damit fertig.

Ich würde Ruby, Perl oder Python als Klebstoff empfehlen. Für den Screenshot GetWindowDC() und BitBlt() aus der Winapi. (Sofern es kein DX ist!) Und als OCR-Lib einfach die Bindings von Tesseract für deine erwählte Skriptsprache. Fertig! :)

Alles in allem 5 Minuten Arbeit ... allerdings nicht für einen absoluten Anfänger. Aber deine Frage klingt so, als ob du schon ein wenig Erfahrung hast.

Also dann, viel Spaß! :)

Kommentar von CrystalixXx ,

Mäh! Quick'n'Dirty, pfui! :D Mit solchen Skripten habe ich nie etwas gemacht, erschien mir immer irgendwie... ich weiß auch nicht. Nichts halbes und nichts ganzes. Wie dem auch sei.

Mit deiner Beschreibung kann man aber nur lesen, richtig? Oder gibt es da auch Möglichkeiten zum Verändern solcher Werte? So hatte ich jedenfalls die Frage verstanden.

Kommentar von TeeTier ,

Ich glaube nicht, dass der Fragensteller dazu in der Lage ist, Offsets von Speicherbereichen fremder Prozesse auszulesen oder zu manipulieren. Wie du selbst geschrieben hast, erfordert das ja einiges an Grundwissen. :)

Und mit einem kleinen Pfuschskript kommt man ja auch ans Ziel ... "irgendwie". :)

Im Falle von automatisierten User-Eingaben benutzt man eben noch eine weitere API oder Bibliothek, die systemweit Keyboard- und / oder Maus-Events abfeuert. Auch hier wäre es natürlich schöner, diese direkt an den Prozess des Spiels zu senden ... aber heute machen wir alles Quick'n'Dirty, nicht wahr? ;)

Kommentar von CrystalixXx ,

Also ich freue mich immer selbst, wenn ich (meiner Ansicht nach) sauberen Code geschrieben habe, den ich selbst nach 1 Jahr noch verstehe und erweitern kann.

Vielleicht wäre ja "CheatEngine" für den Fragesteller sinnvoll. Dann muss man noch nicht einmal programmieren.

Antwort
von CrystalixXx, 18

Grundsätzlich ja, wenn du die Adresse im Speicher findest und ändern kannst.

Allerdings gibt es Mechanismen, die ein solches Modifizieren verhindern sollen. Dadurch wird es umso schwieriger.

Kommentar von Ice999va ,

das ja nice welche programier sprache würdes du empfehlen bin leider noch blutiger anfanger

Kommentar von CrystalixXx ,

Das wirst du als Anfänger nicht ohne weiteres schaffen. Dazu musst du mindestens die Grundlagen zum Programmieren beherrschen, wichtiger als das ist aber das Wissen um die Speicherverwaltung des jeweiligen Betriebssystems und den Umgang diverser Tools. Oberflächliches Wissen reicht da nicht aus.

Die Programmiersprache selbst ist da nicht entscheidend, solange eine Kommunikation mit der Windows-API möglich ist (wenn das denn überhaupt für das Windows Betriebssystem sein soll). Tendenziell würde ich aber zu C oder C++ raten.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten