J'essaie d'injecter des touches dans le démon d'entrée afin de simuler la saisie à partir d'un script Bash. Est-ce possible, et si oui, comment puis-je y arriver?
linux
shell-script
keyboard
input
Naftuli Kay
la source
la source
Réponses:
Si vous opérez au niveau X (comme dans la question de Gilles), alors utilisez xdotool comme ceci:
Où KEYSTROKE_SPECIFIER peut être quelque chose comme "a" ou "F2" ou "control + j"
EDIT: J'ai raté votre réponse à la question de Gilles, désolé. Je vais laisser cette réponse ici comme une solution pour le cas X.
la source
xte
fonctionne au même niveau.Utilisez le
uinput
pilote. Je ne pense pas qu'il y ait d'utilité pour cela; vous devrez écrire ou adapter un peu de code C. En un mot:Références plus complètes:
la source
Si vous ne travaillez PAS avec des programmes X avec des fenêtres pouvant recevoir des clés, vous recherchez probablement
expect
un programme pratique et très configurable pour exécuter d'autres programmes shell interactifs comme si un utilisateur contrôlait le terminal. Vous pouvez configurer des réponses programmatiques pour répondre à diverses sorties avec différentes entrées.la source
J'ai écrit du code Python qui fait ça. Vous pouvez le trouver dans mon projet open source.
http://code.google.com/p/pycopia/source/browse/trunk/core/pycopia/OS/Linux/event.py
Si vous exécutez ce module en tant que script en tant que root, vous pouvez voir une démo en action.
Cette fonctionnalité de base a été étendue pour un autre projet, powerdroid, qui fournit une implémentation plus concrète pour un système embarqué (Android).
http://code.google.com/p/powerdroid/source/browse/trunk/src/droid/devices.py
la source