Linux - 用Python模拟鼠标点击

3 投票
2 回答
4358 浏览
提问于 2025-04-17 13:24

我想在Python中模拟鼠标点击(如果可以的话,也想模拟键盘输入),在Linux系统(比如Ubuntu)上,这样我就能为一个外部程序创建宏。

我查了一些资料,发现有些问题像这个,它们使用win32api或ctypes来实现这个功能。但因为我在Ubuntu上工作,这些方法对我来说不太适用。

我还发现了Xaut(以前叫Xautomation),据说可以在Linux系统上模拟鼠标和键盘的操作。但对我来说,这个安装起来有点困难,而且文档和例子也不太齐全。

我真的很喜欢win32api的解决方案,因为它非常简单。难道在Linux上没有类似的解决方案吗?

2 个回答

2

你可以使用这个:

import pyautogui 
x= #x position
y= #y position
pyautogui.click(x,y)

要安装pyautogui,可以访问官方的安装页面文档:https://pyautogui.readthedocs.io/en/latest/install.html

要自动输入文本,可以使用这个:

import pyautogui
pyautogui.write('write this example')
5

跟Windows不一样,Linux系统本身就设计得很安全,所以想要插入或拦截用户的操作可不是那么简单的事情 :-)

不过,Linux上还是有一些工具可以做到这一点(前提是你有xauth的凭证,这样就不会去窥探或破解同一台电脑上其他用户的操作)。你可以试试xdotool,这个工具提供了很多命令,可以帮助你找到和选择窗口,然后向它们发送操作指令。

xdotool在大多数Linux发行版上都可以使用(包括debian和基于rpm的系统)。

注意:出于安全考虑,在X11中合成的事件会被设置一个标记,有些软件会忽略所有带有这个标记的事件。

撰写回答