Me gustaría hacer un script de python que se pueda ejecutar en segundo plano pero que imprima texto cuando ocurra un evento de mouse o keyevent. ¿Hay alguna biblioteca/funcionalidad incorporada para lograr esto? O cualquier comando del sistema que pueda llamar para obtener esta información? Ser root no es un problema.Cómo puedo capturar mouseeventos y keyevents usando python en background en linux
7
A
Respuesta
11
Supongo que puede usar enlaces de python para evdev: http://packages.python.org/evdev/index.html. En el tutorial que dan un ejemplo para el teclado, pero debe ser similar para los eventos del ratón:
>>> from evdev import InputDevice, categorize, ecodes
>>> from select import select
>>> dev = InputDevice('/dev/input/event1')
>>> print(dev)
device /dev/input/event1, name "Dell Dell USB Keyboard", phys "usb-0000:00:12.1-2/input0"
>>> while True:
... r,w,x = select([dev], [], [])
... for event in dev.read():
... if event.type == ecodes.EV_KEY:
... print(categorize(event))
... # hitting a and holding space
key event at 1337016188.396030, 30 (KEY_A), down
key event at 1337016188.492033, 30 (KEY_A), up
key event at 1337016189.772129, 57 (KEY_SPACE), down
key event at 1337016190.275396, 57 (KEY_SPACE), hold
key event at 1337016190.284160, 57 (KEY_SPACE), up
2
Tome un vistazo a pynput, por ejemplo:
from pynput.keyboard import Key, Listener
#defining function to print when key is pressed
def on_press(key):
print('{0} pressed'.format(
key))
#defining function to print when key is released
def on_release(key):
print('{0} release'.format(
key))
if key == Key.esc:
# Stop listener
return False
# Collect events until released
with Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
Cuestiones relacionadas
- 1. Capturar entrada en Linux
- 2. ¿Cómo despacha Java KeyEvents?
- 3. Cómo capturar marcos de Apple iSight usando Python y PyObjC?
- 4. Cómo capturar Ctrl + C en Windows y Linux con Qt
- 5. Cómo manejar KeyEvents en un DataGridViewCell?
- 6. Cómo capturar python?
- 7. Cómo capturar número tras nombre en python
- 8. Cómo 'capturar' printf en python con ctypes?
- 9. Linux, cómo capturar pantalla y simular movimientos del mouse
- 10. Aprender Java desde Python background
- 11. Cómo crear un usuario en Linux usando python
- 12. ¿Cómo busco un archivo ejecutable usando python en Linux?
- 13. ¿Cómo puedo capturar COMMAND + S en jQuery?
- 14. Cómo capturar la entrada HID sin procesar en Linux?
- 15. grep en unix/linux: cómo reemplazar o capturar texto?
- 16. ¿Cómo puedo capturar el valor de retorno de shutil.copy() en Python (en DOS)?
- 17. Crear un grupo de usuarios en linux usando python
- 18. Python IDE en consola Linux
- 19. Linux Terminal Display y Python
- 20. ¿Cómo comienzo y detengo un programa de Linux usando el módulo de subproceso en Python?
- 21. Cómo fusionar usando Meld en Linux
- 22. en Python y Linux cómo obtener la identificación del usuario
- 23. ¿Puedo usar Python para capturar eventos de teclado y mouse en OSX?
- 24. ¿Dónde puedo capturar y manejar maxAllowedContentLength excedido en IIS7?
- 25. Capturar cambio en la ventana activa (para Linux)
- 26. En ejecución: make from gVim en Background
- 27. Cómo capturar STDOUT y STDERR en dos variables diferentes usando Backticks en Perl
- 28. ¿Puedo capturar los mensajes exit() y die()?
- 29. ¿Cómo puedo capturar la salida y mostrarla al mismo tiempo con Python?
- 30. ¿Cómo puedo capturar la salida de una carpa en Perl?
manera - como un keylogger? –
Sí. ... límite de caracteres ... – jett
Debe leer los eventos de entrada de los dispositivos en '/ dev/input'. –