IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DirectX Discussion :

detecter le onPaint sur un autre processus


Sujet :

DirectX

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Points : 488
    Points
    488
    Par défaut detecter le onPaint sur un autre processus
    Bonne année à tous.

    Je fais un logiciel qui s'interface avec un jeu DirectX.
    Pour etre synchrone avec celui ci, j'aurai besoin d'etre prévenu à chaque fois qu'il raffraichi l'écran.

    Mon probleme etant que je simule des pressions de touche sur le clavier, et si j'envois 2 pressions de touche sur une seule image, la deuxieme pression ne sera pas recue par le jeu.

    Sauriez vous si c'est possible? Je programme en c#.

    Merci

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    il faut que tu fasses un hook sur la méthode Present du Device (http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx)

    par contre je ne sais pas comment on fait ça en c#.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Points : 488
    Points
    488
    Par défaut
    Merci pour votre réponse et désolé d'avoir tardé de mon coté.
    Grace à vos indices j'ai trouvé la solution dans cet article :
    http://spazzarama.wordpress.com/2010...t3d-api-hooks/

    Cette personne explique entre autre comment hooker la methode EndScene.

    Je bascule donc ce topic en Résolu, meme si 2 points me turlupinnent :

    • EndScene est il la bonne méthode à hooker?

    Je me demande si c'est à ce moment là qu'une appli directX est prete à regarder l'état du clavier ou pas...

    • la facon dont il récupere les fonctions direct3D

    Pour faire court, l'auteur explique qu'il récupére l'adresse des fonctions dans la VTABLE (je n'ai pas bien compris comment il choppait l'adresse de la VTABLE, on dirait que c'est l'adresse de la 3Ddevice). il dit qu'avec DirectX9 il y a 119 functions definies dans IDirect3DDevice9.

    Je me demande donc pour un jeu DirectX11, si cette technique pour récupérer EndScene serait toujours valide ou pas.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    j'ai un peu de difficulté là, si tu hook la méthode Present, ou je ne sais quelle autre de directx, tu n'es en autant cas sur que l'appli est prête à recevoir des messages.
    au mieux elle recevra les messages la frame d'après, enfin il me semble.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Points : 488
    Points
    488
    Par défaut
    J'ai constaté, en faisant baisser le FPS (en mettant les details trop haut) que une pression/relachement de touche était capturé par image affichée. J'ai donc naturellement voulu me caller sur l'affichage du jeu.

    Auriez vous une meilleur suggestion?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Detection d'evenements sur d'autres pages
    Par hajjaj dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 10/02/2010, 10h18
  2. Detection d'appuis sur touche CTRL + autre touche
    Par rolls dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 11/11/2008, 14h23
  3. Réponses: 9
    Dernier message: 22/03/2003, 21h47
  4. Lancer un programme, mais sur une autre machine
    Par GOUGOU1 dans le forum Réseau
    Réponses: 12
    Dernier message: 08/12/2002, 20h36
  5. probleme d'installation sur d'autres postes
    Par VBkiller dans le forum Composants VCL
    Réponses: 4
    Dernier message: 18/09/2002, 18h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo