Pythonでキーストロークをシミュレートするにはどうすればよいですか?また、複数のキーを同時に押したいです。
何かのようなもの:
keystroke('CTRL+F4')
または
keystroke('Shift+A')
これは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)
Linux uinputカーネルモジュールへのPythonic API ...
Python-uinputは、Python Linux uinputカーネルモジュールへのインターフェイスです。これにより、ユーザー空間デバイスドライバーをカーネルに接続できます。実際には、Python-uinputを使用すると、任意の生成用の仮想ジョイスティック、キーボード、マウスを簡単に作成できますプログラムでイベントを入力...
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()
Linuxで使用する場合は、 pyautogui ライブラリを試してください。複数のキーについては、ホットキーを使用する必要があります。例:
pyautogui.hotkey('ctrl', 'c') # ctrl-c to copy
私にとってはうまくいきました-こちらをご覧ください Popen.communicateを使用してキーストローク(ALT + TAB)を渡す方法(Linuxの場合)?