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

C# Discussion :

Simuler une touche enfoncée


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2011
    Messages : 14
    Par défaut Simuler une touche enfoncée
    Bonjour, j'ai recherché longuement sur Google. Soit les solutions dates de 2008 et moins et ne fonctionnent plus, ou bien elles ne fonctionnent pas comme je le veux.

    Voilà mon problème, j'aimerais créer un bot qui jouerais à un jeu 2d à ma place. Grâce à un procédé de traitement d'image, je suis en mesure d'obtenir les informations nécessaires (positionnement des autres objets, etc) pour faire une intelligence artificielle. Par contre, je dois trouver un moyen, à partir du langage C#, de simuler les flèches du clavier (qui permettent de bouger notre joueur). Les solutions que j'ai trouvées consistent à rappeler "SendKeys" plusieurs fois pour simuler une touche enfoncée, par contre, le jeu est fait de sorte que, quand tu tiens réellement la touche enfoncée, le joueur obtient sa vitesse pour atteindre son maximum, mais en rappelant "SendKeys", la "suite" est annulée à chaque fois, et le joueur n'atteint donc jamais sa vitesse maximale. Au lieu d'appeler KeyDown, KeyUp, KeyDown, KeyUp, etc, il faudrait que je puisse appeler plusieurs KeyDown d'affilé, puis finalement appeler KeyUp lorsque le moment est venu.

    Merci pour votre aide et de m'avoir lu

  2. #2
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : autre
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223

  3. #3
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Bonjour.

    Si les solutions ne fonctionnent plus c'est sans doute un problème de droits. Il me semble que désormais seules les applis en mode admin peuvent interagir avec d'autres applis.

  4. #4
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : autre
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Par défaut
    Citation Envoyé par DonQuiche Voir le message
    Bonjour.

    Si les solutions ne fonctionnent plus c'est sans doute un problème de droits. Il me semble que désormais seules les applis en mode admin peuvent interagir avec d'autres applis.
    On peut très bien envoyer un message à une autre application sans être admin. La contrainte si je ne me trompe pas est d'utiliser le même compte que le compte qui a lancé l'application à contrôler ou d'utiliser un compte admin pour envoyer les messages

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2011
    Messages : 14
    Par défaut
    Merci pour le lien, ça marche très bien! Maintenant, je dois trouver un moyen de mettre le focus sur mon jeu Flash à partir de mon programme..

  6. #6
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : autre
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Par défaut
    Tu peux le faire avec la fonction SetForegroundWindow

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [DllImport("user32.dll")]
     [return: MarshalAs(UnmanagedType.Bool)]
     static extern bool SetForegroundWindow(IntPtr hWnd);
    http://www.pinvoke.net/default.aspx/...regroundwindow

Discussions similaires

  1. Simuler une touche clavier
    Par SPACHFR dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/12/2010, 20h02
  2. simuler une touche
    Par keyra dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 06/07/2006, 12h14
  3. Simuler une touche par une autre sous Windows
    Par sdelaunay dans le forum Windows
    Réponses: 2
    Dernier message: 05/05/2006, 14h31
  4. Simuler une touche clavier
    Par micky13 dans le forum Langage
    Réponses: 9
    Dernier message: 17/04/2006, 20h08
  5. [Applet]simuler une touche clavier
    Par mat10000 dans le forum Interfaces Graphiques en Java
    Réponses: 19
    Dernier message: 12/12/2003, 16h23

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