回答
虽然这是具体到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)
如何将密钥发送到shell? – user2988257 2016-08-30 08:58:35
Python的API到Linux uinput内核模块...
Python的uinput是Python接口到Linux uinput kern el模块,它允许将用户空间设备驱动程序连接到内核。在实践中,Python的uinput使得它死了简单的创建虚拟操纵杆,键盘和鼠标进行编程产生任意输入事件......
我可以用小写字母排出吗?请举例! – karensantana 2013-04-11 22:22:45
链接已死 – 2017-04-06 10:56:26
如果您使用的是Windows,使用Sendkeys如果在Linux上,尝试建议用于xsendkeys或pexpect的given here。
考虑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()
我尝试了类似的代码,它是因为我在系统日志中看到一个新的虚拟输入设备已创建但按键不出现在X中?任何特殊的事情都可以做,所以密钥由X服务器接收? – akostadinov 2013-07-05 10:18:46
链接已死 – 2017-04-06 10:56:42
如果你打算使用它在Linux上,尝试pyautogui库。 对于多个键,你将需要使用热键,例如:
pyautogui.hotkey('ctrl', 'c') # ctrl-c to copy
对我来说,它的工作 - 在这里看到: How to pass a keystroke (ALT+TAB) using Popen.communicate (on Linux)?
- 1. 与Python模拟按键动作的Linux
- 2. 使用pywin32模拟python中的按键
- 3. 使用Python for Linux模拟按键事件
- 4. 如何在Linux机器上模拟Python中的按键
- 5. 模拟Python 2.7中的按键事件
- 6. 使用jQuery模拟按键
- 7. 使用jQuery模拟按键
- 8. 使用bash模拟按键
- 9. 在Python中模拟长按键
- 10. 在Javascript中使用jquery模拟按键
- 11. 模拟按键
- 12. 模拟C中的按键#
- 13. 在Linux中模拟C中的F11键
- 14. 在Linux C控制台应用程序中模拟按键
- 15. 模拟键盘在linux
- 16. 模拟Python按键控制游戏
- 17. 如何在Python/PyQt中模拟真正的键盘按键?
- 18. 在WPF中模拟按键
- 19. 用python模拟Raspbian中的击键
- 20. Flex - 用于模拟按键的按钮
- 21. 模拟在Java中按住的按键
- 22. 按键模拟键盘按下“Shift”键
- 23. Flex:模拟按键
- 24. 模拟键盘按
- 25. 模拟键按c#
- 26. Android模拟按键
- 27. VB模拟按键
- 28. 模拟使用jQuery按Enter键
- 29. C++ win32使用DirectInput模拟按键
- 30. 如何使用windowhook来模拟按键
我可以问你为什么要这么做?还有,在哪种环境下?命令行?图形桌面? – 2011-04-19 09:13:10