出于教育目的,我已经开始使用cwiid
和Xlib
编写一个python脚本,以便我可以像使用鼠标一样使用我的wiimote。
到目前为止,我已经通过调用disp.warp_pointer(dx,dy)
然后在每个设定的时间间隔调用disp.sync()
来移动光标。我担心它可能不是最有效的方法,但至少目前来说,它很简单并且运作良好。
我遇到更多困难的问题是鼠标点击。如何在Xlib中模拟鼠标单击?我想分开按下和发布事件,以便我可以拖放东西。我发现this帖子,但所有解决方案似乎都使用其他库。
答案 0 :(得分:3)
在普通Xlib(C语言)上,您可以使用XTestExtension
或XSendEvent()
。我不确定他们的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应该做垂直和水平滚轮。