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

Windows Discussion :

Problème sur les virtual Key


Sujet :

Windows

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 121
    Points : 56
    Points
    56
    Par défaut Problème sur les virtual Key
    Bonjour,

    J'ai un soucis avec les codes touches des claviers et la touche SHIFT.
    Lorsque j'appuye sur le '1' du pavé numérique, je recois 35, le bon code de touche.
    cependant, lorsque j'appuye sur SHIFT (Gauche ou Droit), la touche me renvoie
    97, alors qu'en soit c'est la même touche.
    Je suis sur un proto de jeu et la touche SHIFT serait utilisée pour maintenir le perso sur sa position.

    Comment récupérer le code 35 (sans le SHIFT) via le code 97?
    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 590
    Points
    41 590
    Par défaut
    Comment récupères-tu la virtual key en question ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 121
    Points : 56
    Points
    56
    Par défaut
    Dans la WinProc sur le msg WM_KEYDOWN, la virtual key étant le wParam.
    D'ailleurs, pour les codes j'ai inversé les valeurs

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 590
    Points
    41 590
    Par défaut
    97, ou 0x61, correspond à VK_NUMPAD1. C'est ça qui pour moi devrait être le "bon" code de touche.
    Je pense que tu n'as pas le choix, tu vas devoir accepter les deux. Pour contrôler la touche shift, je ne vois pas trop comment.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 121
    Points : 56
    Points
    56
    Par défaut
    La solution serait à ce moment d'émuler l'appuye sur la touche SHIFT.
    en d'autre termes, si je compare la touche appuyée avec ma touche enregistrée avec SHIFT appuyée, ça devrait fonctionner.
    Maintenant est-il possible de récupérer la virtual KEY correspondant à VK_NUMPAD01 + SHIFT ?

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 590
    Points
    41 590
    Par défaut
    Si j'ai bien compris ton premier post et le troisième, l'un des deux correspond à VK_NUMPAD1, l'autre correspond à '1' (0x21).

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 121
    Points : 56
    Points
    56
    Par défaut
    En fait pour etre précis, il me sort
    VK_NUMPAD1 sans le SHIFT
    VK_END avec le SHIFT

    Ca revient à l'équation VK_NUMPAD01 + SHIFT = VK_END

    Citation Envoyé par Médinoc
    Je pense que tu n'as pas le choix, tu vas devoir accepter les deux.
    Pas possible, les touches sont paramétrables par l'utilisateur

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 121
    Points : 56
    Points
    56
    Par défaut
    Je n'ai pas trouvé de solution.
    Simplement, avec un GetKeyState, je sais si SHIFT est pressé
    ensuite je change le code en fonction de celui que je recois, histoire de
    rediriger vers la bonne touche.
    C'est crade, mais ça marche :p

Discussions similaires

  1. Question sur les primaries key
    Par izioto dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/11/2006, 14h22
  2. Problème sur les dates
    Par Littlecoda dans le forum Oracle
    Réponses: 7
    Dernier message: 07/07/2006, 12h39
  3. problème sur les threads et les sémaphores
    Par ramislebob dans le forum Windows
    Réponses: 1
    Dernier message: 29/06/2006, 12h52
  4. Réponses: 6
    Dernier message: 31/03/2006, 18h05
  5. j'ai un problème sur les hinstances
    Par ramaro dans le forum C++
    Réponses: 9
    Dernier message: 26/02/2006, 15h32

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