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

Linux Discussion :

ev.code (input_event) en ascii (ou en char ou string)?


Sujet :

Linux

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 52
    Par défaut ev.code (input_event) en ascii (ou en char ou string)?
    Bonjour,

    J'ai un programme qui écoute les touches claviers et qui retourne à chaque fois le code (de la touche). J'utilise :

    read(fd, &ev, sizeof(struct input_event));

    Cependant je n'ai pas encore réussi a convertir le ev.code en ascii (ou string ou char). Comment est ce possible sans passer par un fichier contenant les correspondances code <-> ascii (pour plus de portabilité)?

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 474
    Par défaut
    J'ai tendance à dire que ça dépend du type de clavier configuré sur la console en question et, donc, que c'est elle qu'il faut lire.

    Pourquoi logues-tu les touches à si bas niveau ?

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 52
    Par défaut
    Je logue aussi bas car je connais que cette méthode pour récuperer les touches clavier. Le but de mon petit soft est de faire des statistiques sur les touches et mot utilisées.

    Je me doute que ça dépend du type de clavier (Azerty, qzerty,...). C'est pour cela que je ne voulais pas stocker en dur dans mon programme les équivalences code<-> char. Je veux essayé d'avoir une portabilité linux...

    Y a t'il un moyen connu pour convertir un "event code" en asci?
    Ou y a t'il y un autre moyen que de passer par la structure "input_event" pour récuperer l'appuye sur les touches?

    Merci d'avance et bonne soirée.

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 474
    Par défaut
    Ça dépend. La conversion est faite avec des tables qui se trouvent à plusieurs endroits et à différents niveaux. J'entends par là que Linux gère les siennes depuis ce qu'il y a dans /lib/kbd (mais chargé explicitement avec certaines commandes), que X-Window fait également ses propres conversions depuis une autre table qui lui est propre et qui est sélectionnée depuis Xorg.conf, et que GNOME, là encore, gère lui-même la saisie à travers iBus qui commence à être vraiment trop haut pour de la gestion clavier (ça pose des problèmes, parfois).

    Dans l'absolu, tu as le droit d'avoir plusieurs fenêtres sur le même écran chacune configurée selon un modèle de clavier différent (FR, US, UK…) même si, en pratique, les systèmes ne le font pas. Mais en tout état de cause, il est normal que cela n'apparaisse pas dans l'événement.

    Si c'est un truc à la Windows que tu cherches à faire, ce sont les événements X-Window qu'il faut intercepter et loguer. Ce n'est pas l'interface « input » de Linux qui, elle, sert à unifier l'accès aux périphériques d'entrée déclarés comme tels. Formellement, tout ce qui va sur l'USB, mais pas les périphs PS/2. Donc, ça peut être un clavier ou une souris, mais également un joystick à retour de force, une tablette graphique, ou autre…

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 52
    Par défaut
    Merci.

    Je vai regarder du coté de X-Window. A mon avis ça va être plus simple.

    Bonne continuation

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

Discussions similaires

  1. Convertitr un code Hex to ascii
    Par yacinew dans le forum Langage
    Réponses: 5
    Dernier message: 05/08/2013, 03h01
  2. [Débutant] Code Ascii dans variable de type string
    Par Nixeus dans le forum C#
    Réponses: 2
    Dernier message: 03/01/2012, 15h32
  3. Remplacer char dans string par code ASCII
    Par ThomasParis dans le forum Langage
    Réponses: 2
    Dernier message: 16/07/2010, 11h47
  4. convertir un char * en string
    Par Seij dans le forum C++
    Réponses: 5
    Dernier message: 08/03/2006, 22h23
  5. Incompatibilités Char et String
    Par architecte dans le forum Langage
    Réponses: 5
    Dernier message: 05/12/2005, 00h35

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