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

Visual C++ Discussion :

Comment activer la touche Num Lock? [FAQ]


Sujet :

Visual C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Comment activer la touche Num Lock?
    Bonjour,
    est-il possible d'activer la touche Num Lock en C++? et comment?

    J'utilise Visual Studio 2008.

    Merci

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par frank2243 Voir le message
    Bonjour,
    Bonjour et bienvenu,
    Citation Envoyé par frank2243 Voir le message
    est-il possible d'activer la touche Num Lock en C++?
    Oui et non :
    Non rien en C++ standard n'existe (du moins, à ma connaissance).
    Oui, sur Windows, c'est possible !

    Citation Envoyé par frank2243 Voir le message
    et comment?

    J'utilise Visual Studio 2008.
    En lisant le MDSN

    Citation Envoyé par frank2243 Voir le message
    Merci
    Bon, pour une recherche plus rapide, c'est ici

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    C'est la première fois que je vais quelque chose de ce genre. Je ne suis pas débutant, je suis inscrit au cours de Programmation Avancée au cégep, mais je n'ai jamais eu à faire ça.

    Pourrais-tu m'aider et me montrer comment faire stp?

  4. #4
    Membre éclairé
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 749
    Points
    749
    Par défaut
    Bonjour,

    J'ai déjà eu à faire l'inverse et avec la touche "Verr Maj" (désactiver le verrouillage majuscule). En adaptant à ton cas, ça donnerait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Macro à placer à l'endroit le plus adéquat.
    #define IsNumLocked() ((GetKeyState(VK_NUMLOCK) & 1)? true : false)
     
    // Activation du verrouillage numérique.
    if (!IsNumLocked())
    {
    	keybd_event(VK_NUMLOCK, MapVirtualKey(VK_NUMLOCK, 0), 0, 0);
    	keybd_event(VK_NUMLOCK, MapVirtualKey(VK_NUMLOCK, 0), KEYEVENTF_KEYUP, 0);
    }

  5. #5
    Expert confirmé Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 364
    Points : 5 378
    Points
    5 378
    Par défaut
    Bonjour,

    Personellement j'utilise SendInput, qui fait la même chose.

    Ta demande est l'exemple de code de la fonction keybd_event dans la MSDN.

  6. #6
    Membre éclairé
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 749
    Points
    749
    Par défaut
    Citation Envoyé par fregolo52 Voir le message
    Ta demande est l'exemple de code de la fonction keybd_event dans la MSDN.
    Ah dis donc, c'est vrai ça ! Pourtant, je ne m'en suis pas inspiré (en tout cas pas directement).

  7. #7
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Salut,
    On peut aussi utiliser l'api: SetKeyboardState.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par PetitPapaNoël Voir le message
    Bonjour,

    J'ai déjà eu à faire l'inverse et avec la touche "Verr Maj" (désactiver le verrouillage majuscule). En adaptant à ton cas, ça donnerait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Macro à placer à l'endroit le plus adéquat.
    #define IsNumLocked() ((GetKeyState(VK_NUMLOCK) & 1)? true : false)
     
    // Activation du verrouillage numérique.
    if (!IsNumLocked())
    {
    	keybd_event(VK_NUMLOCK, MapVirtualKey(VK_NUMLOCK, 0), 0, 0);
    	keybd_event(VK_NUMLOCK, MapVirtualKey(VK_NUMLOCK, 0), KEYEVENTF_KEYUP, 0);
    }
    Merci ça fonctionne.

    Pourrais-tu m'expliquer comment faire le contraire stp? C'est à dire la désactiver.

  9. #9
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Pareil mais tu ne testes plus son état ou tu le testes à l'envers (code de PetitPapaNoël) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    // Macro à placer à l'endroit le plus adéquat.
    #define IsNumLocked() ((GetKeyState(VK_NUMLOCK) & 1)? true : false)
     
    // Activation du verrouillage numérique.
    if (!IsNumLocked())
    {
    	keybd_event(VK_NUMLOCK, MapVirtualKey(VK_NUMLOCK, 0), 0, 0);
    	keybd_event(VK_NUMLOCK, MapVirtualKey(VK_NUMLOCK, 0), KEYEVENTF_KEYUP, 0);
    }
     
    // Dés-activation du verrouillage numérique.
    if (IsNumLocked())
    {
    	keybd_event(VK_NUMLOCK, MapVirtualKey(VK_NUMLOCK, 0), 0, 0);
    	keybd_event(VK_NUMLOCK, MapVirtualKey(VK_NUMLOCK, 0), KEYEVENTF_KEYUP, 0);
    }

  10. #10
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par farscape Voir le message
    Salut,
    On peut aussi utiliser l'api: SetKeyboardState.
    Dans le MSDN, je trouve ça :
    an application cannot use SetKeyboardState to set the NUM LOCK, CAPS LOCK, or SCROLL LOCK (or the Japanese KANA) indicator lights on the keyboard. These can be set or cleared using SendInput to simulate keystrokes.
    Et effectivement, ça marche pas

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

Discussions similaires

  1. Activer la touche CAPS LOCK du clavier
    Par Gildas22 dans le forum VB.NET
    Réponses: 9
    Dernier message: 25/08/2014, 14h51
  2. [PC portable] Comment activer les touches F* et le bluetooth
    Par Nadia942 dans le forum Ordinateurs
    Réponses: 0
    Dernier message: 23/04/2011, 18h38
  3. Comment activer la touche shift?
    Par JavaAcro dans le forum Debian
    Réponses: 5
    Dernier message: 21/08/2006, 11h57
  4. Activer la touche Caps Lock
    Par jagoulard dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 13/01/2005, 20h42
  5. Réponses: 9
    Dernier message: 15/09/2004, 21h35

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