如何使用Python中的Xlib模拟鼠标点击

5
为了教育目的,我打算使用和编写Python脚本,以便我可以像使用鼠标一样使用我的Wii遥控器。
到目前为止,我已经通过调用然后每隔一段时间调用来移动光标。我担心这可能不是最有效的方法,但至少现在,它足够简单并且运行得很好。
我更难处理的问题是鼠标点击。如何在Xlib中模拟鼠标点击?我想要分开的按下和释放事件,以便我可以拖放东西。我看到过这个帖子,但那里的所有解决方案似乎都使用其他库。

你链接的问题中提到的 python-uinput建议 应该可以解决。据我所知,它实际上是在内核级别注入事件,因此无论您使用XLib、Tkinter、GTK或任何其他工具包都没有关系。 - Henry Gomersall
2个回答

7

仅使用python Xlib:

from Xlib import X
from Xlib.display import Display
from Xlib.ext.xtest import fake_input
d = Display()
fake_input(d, X.ButtonPress, 1)
d.sync()
fake_input(d, X.ButtonRelease, 1)
d.sync()
< p > < code >fake_input< /code >的第三个参数是选择要模拟的鼠标按钮。1/2/3代表左/中/右键,4/5和6/7用于垂直和水平滚轮滚动。< /p >

3

在普通的Xlib(C语言)中,您可以使用或。我不确定它们的Python绑定。它们可能有绑定到xcb版本的。

还有一个叫做的二进制文件来自xautomation包(在Debian上,sudo apt-get install xautomation然后man xte)。非常容易使用,您还可以查看其源代码以了解如何使用。

指针:


2
经过进一步搜索,看起来Python中的Xlib.ext.xtest可能相当于XTestExtensions。无论如何,xtest.fake_input效果很好。 - math4tots
@math4tots:感谢您的评论,我也在尝试实现同样的功能,但是我找不到如何调用XTest*方法。祝好! - Sebastian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接