DirectX

Liebe/-r Experte/-in,

weisst du ob es bei DirectX die Möglichkeit gibt in ein „fremdes“ (also das eines anderen Prozesses) DirectX-Fenster zu zeichnen ohne sich per API-Hooking an die entsprechenden Funktionen im Zielprozess zu hängen? Wenn ja - wie mache ich das?

Bin hier für jeden weiterführenden Hinweis dankbar.

danke schon mal

Daniel

Hallo,

ich denke es kann nur über das API Hooking laufen, weil Du zu dem Zeitpunkt bereits die auf der Grafikkarte abgelegten und verarbeiteten Daten siehst.

Wozu soll’s denn dienen? Sprache?

Sorry - ist nicht besonders erschöpfend

Leider nein! Habe das ehrlich gesagt noch nicht mal in Betracht gezogen.

weisst du ob es bei DirectX die Möglichkeit gibt in ein
„fremdes“ (also das eines anderen Prozesses) DirectX-Fenster
zu zeichnen ohne sich per API-Hooking an die entsprechenden
Funktionen im Zielprozess zu hängen? Wenn ja - wie mache ich
das?

Huhu,

Ich denke nicht, dass das ohne Hooking möglich ist. Du könntest höchstens ein eigenes Overlay-Fenster erzeugen und dort hineinrendern, damit kannst du „über“ aber nicht wirklich „in“ die fremde Anwendung rendern. Weitere Detailauskünfte dazu kann ich dir leider zu beiden Themen nicht geben, aber zumindest zu Overlays findest du bei Google reichlich Informationen.

Gruss, Jemrijà

Hi Daniel,

selbst habe ich dies noch nicht getan/programmiert. Die Frage ist außerdem, ob Du es für D3D oder einfach eine DirectDraw-Anwendung machen willst (DDraw sollte einfacher sein). Generell bräuchtest Du wahrscheinlich das Handle/Adresse des surfaces/Rendertargets und zusätzlich einer initialisierten DX Instanz, welche Du irgendwo her auslesen musst. Evtl. kann man man sich mit einer DX-Funktion die offenen Instanzen durchnummerieren lassen und dann die nötigen Adresse auslesen. Wie gesagt, mit diesem Fall hab ich mich noch nicht beschäftigt, sorry. Hoffe Du findest einen Weg (habe hauptsächlich an D3D Programmen gearbeitet).

Beste Grüße,
R.Z.