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

Langage C++ Discussion :

Enregistrement touches clavier


Sujet :

Langage C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Par défaut Enregistrement touches clavier
    Bonjour,
    J'aimerais créer un programme qui stocke dans un tableau les valeurs binaires que prennent les touches du clavier en fonction du temps.
    Par exemple j'ai 8 touches correspondant aux 8 notes de musique, il faudrait que le tableau ait 8 colonnes, et autant de lignes que dure l'enregistrement. Si on teste les touches tout les 100e de seconde et que ça dure 10 secondes on aura 1000 lignes.
    Je réalise le programme en console C++, j'ai quelques bases en la matière mais je ne sais pas comment retranscrire les touches dans un tableau. Je pensais utiliser des boucles qui testent la valeur de chaque touche, mais comment faire pour être précis au niveau de la base de temps ?
    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 450
    Par défaut
    Bonsoir,

    Citation Envoyé par Sylvain_F Voir le message
    Je réalise le programme en console C++, j'ai quelques bases en la matière mais je ne sais pas comment retranscrire les touches dans un tableau. Je pensais utiliser des boucles qui testent la valeur de chaque touche, mais comment faire pour être précis au niveau de la base de temps ?
    Cela dépend énormément de l'environnement que utilises : machine, système d'exploitation et interface (clavier de l'ordinateur ou synthé→MIDI→USB).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Par défaut
    Ah oui j'oublie de préciser que le clavier dont je parle est celui de mon pc.
    Je suis sous Windows 7 et pour programmer j'ai Dev-C++.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Par défaut
    Salut,
    Ce doit vraiment pas être simple si personne ne peux m'aider
    Est il possible d'effectuer plusieurs tests simultanément ? Ou bien faut il les faire les uns après les autres dans un laps de temps très court ?
    Pour le décompte du temps je ne vois toujours pas comment faire, y a t-il un signal d'horloge de mon pc que je peux utiliser dans un programme en C++ ?

  5. #5
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Pour connaître l'état (enfoncé/relaché) d'une touche du clavier, utilise la fonction GetKeyState. Si tu veux connaître l'état du clavier en général (c'est-à-dire l'état de chaque touche), utilise la fonction GetKeyboardState. Dans la boucle, tu dois mettre un temporisateur (Sleep par exemple) à la fin de chaque itération pour ne pars trop squatter le processeur. Tu galèrerais moins et ton programme serait plus élégant si tu développais une interface graphique au lieu d'une application console pour ce projet. Tu trouveras des explications sur toutes les fonctions que je viens de te présenter en cherchant un peu sur google. Tu comprendrais mieux ces explications si t'avais des connaissances de base en API Windows.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Par défaut
    Ok merci,
    J'étais au courant pour la fonction GetKeyState mais je ne connaissait pas GetKeyboardState.
    Je vais essayer de trouver de quoi continuer sur le net.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Attention, ces fonctions dépendent des messages Windows reçus, et j'ignore si/comment elles marchent dans un programme console.

    GetAsyncKeyState() est la version "teste partout, à tout moment", avec tous les avantages et inconvénients que ça comporte.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. [WD14] Enregistrer touches clavier
    Par pixel016 dans le forum WinDev
    Réponses: 8
    Dernier message: 15/03/2011, 16h07
  2. [Win32] Récupérer un appui touche clavier
    Par elsargento dans le forum MFC
    Réponses: 19
    Dernier message: 06/05/2006, 11h05
  3. [JEditorPane]Captures des touches claviers
    Par splend_f dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 17/05/2004, 14h57
  4. [Applet]simuler une touche clavier
    Par mat10000 dans le forum Interfaces Graphiques en Java
    Réponses: 19
    Dernier message: 12/12/2003, 16h23
  5. envoie de touche clavier
    Par psfox2001 dans le forum DirectX
    Réponses: 1
    Dernier message: 13/03/2003, 21h56

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