Имитировать нажатие клавиши в Linux с помощью Python - программирование
Подтвердить что ты не робот

Имитировать нажатие клавиши в Linux с помощью Python

Как я могу имитировать нажатие клавиши на питоне? Я также хочу нажать несколько клавиш одновременно.

Что-то вроде:

keystroke('CTRL+F4')

или

keystroke('Shift+A')
4b9b3361

Ответ 1

Хотя он специфичен для X, вы можете установить пакет xautomation (apt-get install xautomation в системах на основе Debian) и использовать xte для имитации нажатия клавиш, например:

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)

Ответ 2

python-uinput:

Pythonic API для Linux uinput модуль ядра...

Python-uinput - это интерфейс Python для Linux uinput kernel module, который позволяет подключать драйверы устройств userpace к ядру. На практике Python-uinput упрощает создание виртуальных джойстиков, клавиатур и мышей для произвольного создания произвольных входных событий...

Ответ 3

Рассмотрим python-uinput и evdev. Пример shift+a с последним:

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()

Ответ 4

Если вы находитесь в Windows, используйте Sendkeys, а если в Linux попробуйте предложение здесь для xsendkeys или pexpect.