Hook / Overlay un jeu DirectX?
Quelqu'un peut me dire comment crochet/superposition d'un DirectX jeu en C#?
J'ai essayé de faire un plein écran C# fenêtre de chevaucher un jeu, mais il l'habitude.
Après avoir cherché un peu, j'ai découvert que j'ai besoin d'accrocher le jeu, puis afficher le C# fenêtre.
Quelqu'un peut-il expliquer comment je pourrais faire cela?
Serais-je capable d'afficher un C# forme sur un DirectX jeu?
source d'informationauteur Joey Morani
Vous devez vous connecter pour publier un commentaire.
(divulgation: je travaille pour cette société)
Vous pouvez essayer notre Deviare APIil dispose de fonctionnalités pour accrocher des objets COM à partir de C#.
C'est un ensemble d'objets COM qui peut être utilisé à partir de n'importe quel langage de programmation (soutien à la COM). Un article avec le code source montrant comment capturer de la vidéo et ajouter une superposition est disponible: instrumentant d'applications Direct3D pour capturer de la vidéo et de calculer les FPS
COM Spy Console et Directe De Prise De Son sont deux exemples qui implémente une console pour accrocher des objets COM comme DirectX.
Espère que cela aide.
Vous pouvez essayer mon exemple de raccordement le Direct3D 9 de l'API à l'aide de C#. Ceci utilise EasyHook open source .NET de l'assemblée qui vous permet d'installer les crochets de code managé dans des fonctions non managées.
SlimDX est également utilisé - c'est un open source géré wrapper autour de la Direct3D bibliothèques.
La partie la plus délicate de l'accrochage, c'est de déterminer les adresses des objets COM' des fonctions virtuelles. Ceci est fait dans l'exemple ci-dessus à l'aide d'un petit C++ helper DLL qui trouve les adresses à partir de la VTable. [Mise à jour: il y a un commentaire posté montrer comment obtenir les pointeurs de fonction de la VTable en C# a aussi donné un IntPtr à l'objet com]
L'exemple des crochets de la EndScene méthode d'un IDirect3DDevice9, qui est également l'endroit où vous voulez tirer des superpositions. Comme à l'affichage d'un formulaire dans la superposition, je ne suis pas sûr que ce sera aussi facile, je veux dire que vous pouvez rendre l'image assez facilement, mais vous devrez capturer des entrées manuellement et de répondre/pass-thru les événements de la forme en question de manière appropriée. Bonne chance!
Puisque vous n'avez pas direct DirectX Accès à partir de C#, cela peut être difficile.
À partir de ma compréhension limitée de la notion:
DirectX Crochets consistent en l'attachant à un DirectX Contexte et de les manipuler, cela peut/ne peut pas exiger de jouer avec un autre programme de la mémoire, quelque chose qui convient le mieux à C/C++
J'ai peut-être tort, bien que, cependant c'est un sujet avancé et mon instinct me dit que vous risquez de rencontrer des problèmes .NET