Einzelnen Beitrag anzeigen

Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#23

Re: Text in Diablo II ausgeben

  Alt 1. Sep 2004, 21:44
Die flackernde Variante ist schon möglich, da DirectX sowieso im Fenster läuft, welches ein DC hat, auf das man zeichnen kann (ich hab das selbst mal ausprobiert). Einfach per FindWindow sich ein fensterhandle holen, dann per GetDc den dc holen, und dann einfach per TextOut draufzeichnen. TextOut muss man dann in einer schleife recht oft aufrufen, um auf (möglichst) jeden frame den text zu zeichnen. Das funktioniert, aber wie gesagt, es flackert.

Um aber mit DirectX zu zeichnen, z.B. mit der DrawTextA funktion aus ID3DXFont braucht man zum erstellen der Font (bei dx9) ein IDirect3DDevice9. Ohne das, keine font. Und selbst dabei muss man auch noch im richtigen moment zeichnen, damit der text nicht wie bei obiger variante flackert. Daher ist API bzw. Function-Hooking die EINZIGE akzeptable methode (außer man versucht sich an einem Graphikkartentreiber).

Ich hab mir nun vorgenommen das angesprochene Tutorial zu schreiben, und dies mit einem beispiel auszustatten, das zeigt, wie das möglich ist. Ihr müsst nur ein wenig gedult haben ...

@dizzy: Genau den code hab ich verwendet, um screenshots zu machen ... allerdings ist der für eigene programme gedacht ... ^^

ciao, Philipp
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat