Contrôle des touches du clavier dans Ubuntu

Dupliquer possible:
Comment récupérer des données dans un processus en arrière-plan dans Ubuntu

Je suis en train d’écrire un programme qui surveille les touches pressées sur un clavier. Mais mon programme peut être exécuté en avant-plan ou en arrière-plan. J’ai entendu dire qu’il existe un appel système spécifique au système d’exploitation qui permet au programmeur de surveiller l’activité du clavier même lorsque le programme exécutant l’appel système est en arrière-plan. Je suis nouveau dans la programmation Ubuntu, alors veuillez me dire quel est cet appel système OS.

Remarque: Ce programme est ssortingctement à des fins éducatives. C’est une partie du projet d’école ..

Cordialement

La plupart des systèmes Ubuntu (du moins les ordinateurs de bureau pour les utilisateurs novices d’Ubuntu) utilisent un serveur de fenêtres X11 (comme Xorg ). Ce serveur (uniquement) reçoit les entrées brutes du périphérique clavier et souris. Il les traite pour transmettre les événements de protocole X11 aux applications clientes (telles que votre navigateur Firefox, votre éditeur emacs ou votre terminal gnome ou xterm ).

Vous pourriez passer votre temps (en mois) à les comprendre tous (peut-être à partir de freedesktop ). Vous pouvez également basculer sur un autre projet, par exemple en codant une application graphique intéressante à l’aide de Gtk (dans Gnome) ou de Qt (dans KDE). Toutes les bibliothèques de kits d’outils graphiques Linux sont construites au-dessus d’une bibliothèque interfacant le protocole X11, généralement Xlib ou XCB .

Si vous souhaitez commencer à apprendre la programmation Linux, lisez Advanced Unix Programming et Advanced Linux Programming . Après cela, prenez beaucoup de temps pour comprendre les mystères de tty -s et vous familiariser avec les appels système (2) . Familiarisez-vous ensuite avec une boîte à outils graphique comme Qt ou GTK.

Et ensuite, vous commencerez tout simplement à comprendre à quel point il est difficile de répondre précisément à votre question suspecte et mal inspirée. (La réponse dépend fortement du sharepoint vue – Xorg voit des événements clés différents des autres applications, notamment des clients X, et est très complexe).

Une fois que vous avez compris tous les concepts des liens que je vous ai donnés, vous pourrez poser votre question plus précisément. Lorsque vous poserez votre question de manière plus précise et technique (en expliquant notamment à quel niveau vous souhaitez surveiller le clavier et la souris), en montrant le code que vous avez expérimenté, nous pourrons (et voudrons) répondre à vos questions. vous.

entendu qu’il y a un appel système spécifique à l’OS : de qui avez-vous entendu parler? Avez-vous leur demander?

Cela nécessite plus d’un appel, vous devez utiliser ioctl (qui peut être différent sous Ubuntu) pour envoyer votre enregistreur dans le stream terminal. Ce n’est pas simple et ne convient pas vraiment pour un projet débutant. Pour un exemple, voir le programme de script .

Il existe un programme pour Linux, qui lie les raccourcis clavier globaux et effectue des actions prédéfinies lors de la pression des touches. Cela s’appelle xbindkeys . Recherchez des suggestions dans son code source ou utilisez-le simplement tel qu’il est.