Fake D3D in Vordergrund [Help]

09/29/2013 19:03 Sh1Rum#1
Hey community von der Auto It Section ..ich hab ein Problem mit dem einem Fake D3D programm.Hat hier vielleicht jemand eine Idee wie ich es schaffen kann es durchgehend in den Vordergrund zu ziehen da es hinter dem S4Client.exe versteckt wird und ich keine weg gefunden habe es in den vordergrund zu ziehen . Danke im voraus :)

[Only registered and activated users can see links. Click Here To Register...]
09/29/2013 19:06 Logtetsch#2
Wird meines Wissens nach mit AutoIT nicht funktionieren.
Stichwort DirectX und C++ .
09/29/2013 20:13 YatoDev#3
spiel in fenstermodus und dann die topmost flag verändern von beidem
09/29/2013 20:18 alpines#4
Das wirds nicht bringen, die einzige Möglichkeit die ich da sehe ist per C++ dem bekannten "EndScene Hook", damit detourst du die D3D EndScene Funktion und kannst selber was draufzeichnen.

Eine andere Möglichkeit wäre per GDI+ auf das Fenster vom S4Client zu zeichnen, aber das wird (vermutlich) auch nicht funktionieren.
09/29/2013 23:03 Jeoni#5
Fullscreen Fenster haben mehr Priorität als Fenster mit TopMost-Flag. Wenn du S4 im Fenstermodus hast, geht es, wie auch schon oben erwähnt, problemlos mit TopMost.
Um das zeichnen "auf" einem Fenster, welches sich im fullscreen modus befindet, müsstest du entweder im gleichen Prozess (S4Client.exe) d3d-funktionen hooken (EndScene ist hier die beliebteste, aber nicht einzige, Möglichkeit) und dann das Renderdevice vom Spiel zum Zeichnen nutzen, was in AutoIt nicht ohne weiteres möglich sein wird, oder ein Hardware Overlay erstellen, auf dem du dann zeichnest (ka, wie's damit in AutoIt aussieht, aber ich denke eher schlecht). Alles weit entfernt von dem "Fake D3D", was du zur Zeit benutzt. Per GDI(+) aus einem externen Prozess auf ein Fullscreen-Fenster zu zeichnen dürfte afaik nicht gehen. Wenn man im gleichen Prozess ist, könnte man das Fenster sicher als Rendertarget angeben, aber dann kann man auch gleich d3d nutzen.
Hoffe, dass das geholfen hat ;)
Jeoni
09/29/2013 23:04 Sh1Rum#6
Danke für die zahlreichen Antworten..ich denke ich werde es mit c++ Probieren :)
09/30/2013 08:36 YatoDev#7
Quote:
Originally Posted by Jeoni View Post
Um das zeichnen "auf" einem Fenster, welches sich im fullscreen modus befindet, müsstest du entweder im gleichen Prozess (S4Client.exe) d3d-funktionen hooken (EndScene ist hier die beliebteste, aber nicht einzige, Möglichkeit) und dann das Renderdevice vom Spiel zum Zeichnen nutzen, was in AutoIt nicht ohne weiteres möglich sein wird
ist möglich es gibt für direct x9 und 10 spiele eine .dll mit passender UDF dafür .
findet man schnell durch googel.

Und man muss auch nicht umbedingt c++ verwenden