pynput

 

pynput est un module tiers (qui n’est pas fourni avec les distributions de Python) permettant de gérer les périphérique d’entrée/sortie de type clavier et souris.

Il permet de prendre le contrôle total du clavier ou de la souris :

  • accrocher des événements globaux,
  • enregistrez des touches de raccourci,
  • simulez des pressions de touches, des mouvement de souris, …

Documentation complète de pynput

 

Installation

Le module pynput est disponible sur pypi.org.

Depuis une fenêtre de commande ou un terminal :

pip install pynput

 

 

Événements clavier

L’interaction avec le clavier est accessible dans le sous-module keyboard:

from pynput import keyboard

Pour écouter les événements « clavier », on créer une instance de Listener, à laquelle on indique la fonction à exécuter en cas d’événement :

listener = keyboard.Listener(on_press = touche_pressee)

L’argument on_press est de type function : la fonction à appeler lorsqu’une touche du clavier est pressée.

Ce type de fonction est appelée callback.

 

Le Listener doit ensuite être démarré, et à la fin du programme arrêté !

listener.start()
... # les événements claviers sont "écoutés"
listener.stop()

 

Les fonctions callback doivent être définies avec un paramètre key de type keyboard.Key.

def touche_pressee(key):
    ...

L’objet key représente une touche de clavier.

  • S’il s’agit d’une touche de caractère, key possède un attribut char, ce qui permet facilement de la comparer à un caractère.
  • S’il s’agit d’une touche spéciale, comme les touches de combinaison (↑ Maj, Ctrl, Alt, …), c’est l’attribut qui donne la touche :
    exemples : Key.ctrl_l, Key.tab, …

 

Programme de démonstration

from pynput import keyboard

def touche_pressee(key):
    if hasattr(key, 'char'): # il s'agit d'un caractère
        print(key.char)
    else:
        print(key)

def touche_relachee(key):
    print(key)

listener = keyboard.Listener(on_press = touche_pressee, on_release = touche_relachee) 
listener.start()

continuer = True
while continuer: # boucle infinie (Ctrl+C pour quitter)
    pass

listener.stop()

 

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *