¿Cómo puedo simular una pulsación de tecla en python? También quiero presionar varias teclas simultáneamente.Simular pulsaciones de teclas en Linux con Python
Algo así como:
keystroke('CTRL+F4')
o
keystroke('Shift+A')
¿Cómo puedo simular una pulsación de tecla en python? También quiero presionar varias teclas simultáneamente.Simular pulsaciones de teclas en Linux con Python
Algo así como:
keystroke('CTRL+F4')
o
keystroke('Shift+A')
Aunque es específico para X, puede instalar el paquete xautomation (apt-get install xautomation
en sistemas basados en Debian) y utilizar xte
para simular las pulsaciones de teclas, por ejemplo .:
from subprocess import Popen, PIPE
control_f4_sequence = '''keydown Control_L
key F4
keyup Control_L
'''
shift_a_sequence = '''keydown Shift_L
key A
keyup Shift_L
'''
def keypress(sequence):
p = Popen(['xte'], stdin=PIPE)
p.communicate(input=sequence)
keypress(shift_a_sequence)
keypress(control_f4_sequence)
¿Cómo puedo enviar las claves al shell? – user2988257
API Pythonic a Linux uinput módulo del kernel ...
Python-es uinput interfaz de Python a Linux uinput kern el módulo que permite unir controladores de dispositivo de espacio de usuario en kernel. En la práctica, Python-uinput hace que sea sencillo para crear muertos joysticks virtuales, teclados y ratones para la generación de eventos de entrada arbitrarias mediante programación ...
¿Puedo emitir en minúscula? por favor un ejemplo !! – karensantana
el enlace está muerto –
Si está en Windows, utilice Sendkeys y si en Linux, probar la sugerencia given here para xsendkeys o pexpect.
Considere python-uinput y evdev. Ejemplo de shift+a
con este último:
from evdev import uinput, ecodes as e
with uinput.UInput() as ui:
ui.write(e.EV_KEY, e.KEY_LEFTSHIFT, 1)
ui.write(e.EV_KEY, e.KEY_A, 1)
ui.syn()
Intenté un código similar, se ejemplifica porque veo en el registro del sistema que se creó un nuevo dispositivo de entrada virtual, pero las pulsaciones de teclas no aparecen en X? ¿Se puede hacer algo especial para que el servidor X reciba las claves? – akostadinov
Los enlaces están muertos –
Si va a utilizar en Linux, intente pyautogui biblioteca. Para varias claves que tendrá que utilizar teclas de acceso rápido, por ejemplo .:
pyautogui.hotkey('ctrl', 'c') # ctrl-c to copy
Para mí funcionó - ver aquí: How to pass a keystroke (ALT+TAB) using Popen.communicate (on Linux)?
Puedo preguntar por qué quiere hacer esto? Además, ¿en qué entorno? ¿Línea de comando? Escritorio gráfico? –