如何在Python上使用Xlib模拟鼠标点击

时间:2012-04-21 07:05:42

标签: python xlib wiimote

出于教育目的,我已经开始使用cwiidXlib编写一个python脚本,以便我可以像使用鼠标一样使用我的wiimote。

到目前为止,我已经通过调用disp.warp_pointer(dx,dy)然后在每个设定的时间间隔调用disp.sync()来移动光标。我担心它可能不是最有效的方法,但至少目前来说,它很简单并且运作良好。

我遇到更多困难的问题是鼠标点击。如何在Xlib中模拟鼠标单击?我想分开按下和发布事件,以便我可以拖放东西。我发现this帖子,但所有解决方案似乎都使​​用其他库。

2 个答案:

答案 0 :(得分:3)

在普通Xlib(C语言)上,您可以使用XTestExtensionXSendEvent()。我不确定他们的python绑定。使用xpyb的xcb版本可能存在绑定。

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

指针:

答案 1 :(得分:2)

仅使用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()

fake_input的第三个参数选择正在模拟的鼠标按钮。 1/2/3左/中/右按钮,4/5和6/7应该做垂直和水平滚轮。