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 :

touche directionnel sous la console MS-dos


Sujet :

C

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 140
    Points : 76
    Points
    76
    Par défaut touche directionnel sous la console MS-dos
    comment verifier l'appuie des touche directionnel sous MS-dos?

  2. #2
    Membre régulier Avatar de Hypnos
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 87
    Points : 108
    Points
    108
    Par défaut
    paix et félicité,

    tu dois utiliser les Virtual Key VK_LEFT, VK_RIGHT, etc....

  3. #3
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 342
    Points : 130 320
    Points
    130 320
    Billets dans le blog
    1
    Par défaut Re: touche directionnel sous la console MS-dos
    Citation Envoyé par gaut
    comment verifier l'appuie des touche directionnel sous MS-dos?
    Si tu parles du mode Win32 console, peut-être pourras-tu faire comme Hypnos suggère, à condition de pouvoir récupérer le code clavier virtuel.

    Si tu es en mode DOS pur (comme Turbo C++), le mieux pour découvrir les codes est de lancer le programme suivant :
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
     
    int main()
    {
      puts("Enfoncez des touches. Les codes reçus seront affichés. Tapez Z pour terminer.");
     
      do {
        int ch = getch();
        printf("J'ai reçu le caractère de code ASCII %d : %c\n", ch, ch);
      } while (ch != 'Z');
     
      return EXIT_SUCCESS;
    }
    Il est normal que pour des touches comme les touches de direction, deux octets soient renvoyés : d'abord 0 pour dire "touche étendue", puis un code spécifique.

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 140
    Points : 76
    Points
    76
    Par défaut
    comment lit on le premier octet recu puis le deuxieme ?

  5. #5
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 342
    Points : 130 320
    Points
    130 320
    Billets dans le blog
    1
    Par défaut
    Tu n'as pas toujours précisé sous quel environnement tu travaillais. Je continue sur ma supposition : Turbo C/C++ sous DOS (le vrai).

    Citation Envoyé par gaut
    comment lit on le premier octet recu puis le deuxieme ?
    C'est simple. Tu fais un premier getch(). S'il renvoie 0, tu rappelles getch() pour lire le code étendu.

  6. #6
    Membre éclairé
    Avatar de Elijha
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2003
    Messages : 314
    Points : 742
    Points
    742
    Par défaut
    Salut

    Voici un petit exemple
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    int touche ;
    do
      {
      touche = getch() ;
      if(!touche) // Touches à code étendue
        {
        touche = getch() ;	// Lecture du code
        switch(touche)
          {
          case 0x4B : // Flêche gauche
          break ;
          case 0x4D : // Flêche droite
          break ;
          case 0x48 : // Flêche haute
          break ;
          case 0x50 : // Flêche basse
          break ;
          case 0x49 : // Page UP
          break ;
          case 0x41 : // Page DOWN
          break ;
          default :  // Autre code
          break ;
          } ;
        }
      else // Touches standard
        {
        }
      }
    while(touche!=0x1B) ;	// Exit si touche = ESCAPE
    Fonctionne que sous ms-dos. En faisant qql essais je pense que tu trouveras vite les autres codes étendus.

    Bye...

  7. #7
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 140
    Points : 76
    Points
    76
    Par défaut
    je programme sous dev-cpp

    j'aimerais savoir aussi comment agrandir l'ecran de la console MS-dos

    et comment afficher un texte a un endroit precis


    ex : print text 200,180,"salut tout le monde"

    200 et 180 etant l' abscisse et l' ordonné respective du texte

  8. #8
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par gaut
    ex : print text 200,180,"salut tout le monde"

    200 et 180 etant l' abscisse et l' ordonné respective du texte
    Il n'y a pas de methode portable pour faire ce que tu veux. Sous certains compilateurs (sous DevC++ je ne sais pas) il existe la fonction gotoxy qui permet de se placer a un endroit precis de console.

  9. #9
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 140
    Points : 76
    Points
    76
    Par défaut
    merci bien pour vos reponses !

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

Discussions similaires

  1. touches directionnel et fenetre dos
    Par tootoo dans le forum Langage
    Réponses: 3
    Dernier message: 25/11/2013, 10h17
  2. Réponses: 1
    Dernier message: 24/09/2011, 16h50
  3. Lancer sous la console dos un processus en arrière plan.
    Par ziad.shady dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 25/10/2009, 14h44
  4. Correspondance de la touche slash sous DOS
    Par Gizmil dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 25/12/2007, 18h01
  5. Réponses: 9
    Dernier message: 03/11/2005, 14h18

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