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

Python Discussion :

Gestion simultanée de deux claviers [Python 3.X]


Sujet :

Python

  1. #1
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 599
    Points : 887
    Points
    887
    Par défaut Gestion simultanée de deux claviers
    Bonjour.
    Je cherche à pouvoir différencier les entrées de 2 claviers branchés sur un même ordi. Typiquement, 2 utilisateurs tapent un même texte en démarrant au même moment et on compare le temps mis par chaque utilisateur. L'affichage se ferait avec TKinter dans 2 fenêtres.
    J'ai essayé avec le module keyboard mais sans succès pour l'instant. Quelqu'un.e aurait une idée ?
    Participez vous aussi !
    Message utile
    Discussion résolue

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 051
    Points : 1 382
    Points
    1 382
    Par défaut
    L'un tape un minuscule et l'autre en majuscule.

  3. #3
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 847
    Points : 7 162
    Points
    7 162
    Par défaut
    Bonjour,

    Citation Envoyé par ypcman
    Je cherche à pouvoir différencier les entrées de 2 claviers branchés sur un même ordi.
    C'est de la programmation système... il faudrait voir du côté des API (Windows, Unix, ...), ce qui n'est pas simple, et les documentations souvent font appels à des connaissances en C/C++.

    Par ex. pour l'API Windows (pywin32) avec un peu de recherches, j'ai trouvé cette page qui explique qu'on peut gérer plusieurs périphériques d'entrées.

    Vous pourrez enregistrer vos périphériques avec une fonction telle que RegisterRawInputDevices. Il faudra ensuite traiter toutes les entrées brutes, je vous laisse chercher si ça vous intéresse.

    Ça demande tout un travail de tests et la découverte de l'API Windows. Puis par la suite si on veut un code portable, la découverte d'autres API Systèmes demanderont tout autant d'investissement.

    Bon courage !
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  4. #4
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 599
    Points : 887
    Points
    887
    Par défaut
    Merci Fred pour tes recherches.
    Après étude, j'ai trouvé ceci en utilisant le module evdev sous Linux. Il permet de différencier les 2 claviers :
    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
    from select import select
    from evdev import InputDevice, list_devices, ecodes, categorize
     
    # A mapping of file descriptors (integers) to InputDevice instances.
    devices = map(InputDevice, list_devices())
    devices = {dev.fd: dev for dev in devices if (dev.name.find("eyboard") != -1)}
     
    for dev in devices.values():
        print(dev)
     
    while True:
        r, w, x = select(devices, [], [])
        for fd in r:
            for event in devices[fd].read():
                # print(event, event.type)
                if event.type == ecodes.EV_KEY:
                    key_event = categorize(event)
                    print(f"\nKey event from {devices[fd].name}: {key_event.keycode}")
    Participez vous aussi !
    Message utile
    Discussion résolue

  5. #5
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 847
    Points : 7 162
    Points
    7 162
    Par défaut
    Oui donc pas sur Windows, ce qui rend le code non portable actuellement
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

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

Discussions similaires

  1. gestion des evenements du clavier avec irrlicht
    Par mari-ion dans le forum Irrlicht
    Réponses: 5
    Dernier message: 05/03/2009, 11h34
  2. [SDL] Gestion d'évènements au clavier
    Par Shargat dans le forum SDL
    Réponses: 3
    Dernier message: 12/05/2008, 21h11
  3. gestion des touches du clavier
    Par ines1 dans le forum C++
    Réponses: 5
    Dernier message: 27/01/2007, 20h37
  4. Deux claviers, un en QWERTY, l'autre en AZERTY
    Par barthelv dans le forum Windows XP
    Réponses: 2
    Dernier message: 19/06/2006, 13h57
  5. affichage simultané de deux graphiques en Gnuplot
    Par Makino dans le forum Tkinter
    Réponses: 2
    Dernier message: 01/03/2006, 09h56

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