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 :

Comment reconnaitre le type de clavier (API windows)


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Comment reconnaitre le type de clavier (API windows)
    Bonjour à tous.
    Je suis entrain de travailler sur la gestion du clavier avec l'API windows.
    Mon problème est que mon programme , lorsqu'il reçoit l'input du programme, il ne reconnais que les clavier azerty. j'ai tésté sur un clavier querty et le resultat est que mon programme affiche l'équivalent azerty de la touche qu'il a reçu.
    Je voudrais qu'il puisse fonctionner sur les deux, et si c'est possibsle avec l'api windows, si non ce n'est pas grave.

    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 379
    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 379
    Points : 41 575
    Points
    41 575
    Par défaut
    Que disent la barre de langue et les options clavier?

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    sur le PC avec clavier azerty, la langue est Français
    sur le PC avec clavier qwerty, la langue est English,
    mon proogramme marche trés bien avec le clavier en langue française, mais quand je l'execute sur le PC en anglais, il affiche l'equivalent azerty des touches que j'ai appuié

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    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 379
    Points : 41 575
    Points
    41 575
    Par défaut
    Comment lis-tu les touches?

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    j'utilise la fonction getkeystate

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result=GetKeyState(lettre);
    les variables letter et result sont des int

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    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 379
    Points : 41 575
    Points
    41 575
    Par défaut
    Eh bien, dans ce cas, je ne comprends pas.
    Si tu fais un GetKeyState('A'), eh bien, tu devrais correctement détecter que A est pressé:
    • si tu appuies sur A sur un clavier AZERTY quand Windows est réglé en AZERTY,
    • et si tu appuies sur A sur un clavier QWERTY quand Windows est réglé en QWERTY.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    justement. Je me dis exactement la même chose que toi.
    Mais la réalié et toute autre que la théorie. quand j'appuie sur 'a' sur un clavier azerty, getkeystate détecte 'a', alors que quand j'appuie sur le 'a' sur le clavier querty, il détecte le 'q' ...

    Je pense que ce problème est due au fait qu'il faudra initialiser le 'keyboard layout', mais je ne sais pas comment faire ...

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    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 379
    Points : 41 575
    Points
    41 575
    Par défaut
    Tu règles bien Windows en QWERTY quand tu branches le clavier QWERTY ?

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    oui et non
    je m'explique : j'ai trois PC, 2 en azerty avec Windows XP en français
    et le 3ème est un qwerty avec XP en anglais

    Je suis pratiquement sûr que c'est une question de layout
    Informations sur les keybord layout en anglais

    mais je n'arrive pas à savoir quelle fonction parmis celles ci utiliser
    Source: msdn (keyboard input)
    GetKeyboardLayout

    The GetKeyboardLayout function retrieves the active input locale identifier (formerly called the keyboard layout) for the specified thread. If the idThread parameter is zero, the input locale identifier for the active thread is returned.
    GetKeyboardLayoutList

    The GetKeyboardLayoutList function retrieves the input locale identifiers (formerly called keyboard layout handles) corresponding to the current set of input locales in the system. The function copies the identifiers to the specified buffer.
    GetKeyboardLayoutName

    The GetKeyboardLayoutName function retrieves the name of the active input locale identifier (formerly called the keyboard layout).

    LoadKeyboardLayout

    The LoadKeyboardLayout function loads a new input locale identifier (formerly called the keyboard layout) into the system. Several input locale identifiers can be loaded at a time, but only one per process is active at a time. Loading multiple input locale identifiers makes it possible to rapidly switch between them.
    et je n'arrive pas à comprendre leur valeur de retour.
    D'ailleur, je ne maitrise pas encore les valeurs de retour de detkeystate

Discussions similaires

  1. Comment surcharger (hook) n'importe quelle API windows ?
    Par RazielReaver dans le forum API, COM et SDKs
    Réponses: 12
    Dernier message: 05/07/2020, 18h41
  2. Réponses: 10
    Dernier message: 26/03/2008, 17h23
  3. comment reconnaitre le type de donnes ?
    Par donyas dans le forum Langage
    Réponses: 5
    Dernier message: 22/03/2007, 23h03
  4. comment reconnaitre le type d'objet
    Par reski dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 17/09/2006, 20h15
  5. Réponses: 69
    Dernier message: 15/06/2006, 11h42

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