Einzelnen Beitrag anzeigen

d3pp

Registriert seit: 31. Mai 2012
2 Beiträge
 
#4

AW: Pixelabfrage bei (dx)Spiel

  Alt 1. Jun 2012, 01:03
Hi.
Hier nochmal ein wenig mehr meine Ausgangslage erklärt...

Ich möchte in Diablo 3 eine Zahl auslesen, um eine Statistik für einen Freund anzufertigen, welcher das für ein Projekt an der Uni benötigt (Deutschstudent, machen atm ein Proseminar über Computerspiele). Dies sollte bestmöglichst fortlaufend geschehen, also im Hintergrund mitprotokolliert werden.

D3 läuft wohl mit directx, nur im "full windowed" Modus lässt sich über "Drucken" ein Screenshot anfertigen (Hier lassen sich wohl ein paar WinAPIs nutzen).
Hooking-Techniken sind mir zu kompliziert und werden vom Hersteller des Spiels wohl nicht gern gesehen.
Daher versuche ich über mit keybd_event einen Screenshot anzufertigen. Die Zahlerkennung funktioniert bereits. Dies habe ich mit einigen angefertigten Screenshots getestet.

Zum akt. Programm: Die angesprochene Button2click ist eine Prozedur, die lediglich den Screenshot anfertigt, dann von der Zwischenablage den Screenshot in die bitmap packt und von dort die Zahl ausliest und in die Listbox schreibt.

Ferner gibt es die Button4click Prozedur, dies ist der eigentliche "Start" der autom Protokollierung. Hier wird im Spiel das entsprechende Fenster aufgerufen und dann auch die button2click aufgrufen.

Es gibt noch ein paar weitere Einstellungen aufm Formular, die aber nicht weiter interessant sind.

Aktueller Stand ist, dass die button4click mich wunderbar zum Fesnter bringt, wo der Screenshot gemacht wird. Dann kommt es manchmal zu Exceptions wegen des Clipboards und meistens scheitert er dann daran, dass er wohl nicht den Screenshot anfertigt. Dies klappt erst, wenn a) das Fenster aktiv ist und b) ich die Button2click durch Button2 starte. Weiteres Problem er verarbeitet immer komischerweise den Screenshot, der vor einem Aufruf angefertigt wurde, nicht den aktuellen...

Meine Fragen: a)Warum klappt der Screenshot nur, wenn das Fenster aktiv ist. Für einen Screenshot mit der "Drücken-taste" braucht auch kein Fenster aktiv sein. b) Hat jmd eine Idee, warum nicht der aktuelle Screenshot verarbeitet wird und c) Warum klappt die Erkennung bei aktiven fesnter nicht aus der Button4click heraus, sondern nur durch manuelle betätigung von button2click.

Danke
  Mit Zitat antworten Zitat