4

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

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

我遇到更多困难的问题是鼠标点击。如何在 Xlib 中模拟鼠标点击?我想要单独的新闻和发布事件,以便我可以拖放内容。我遇到过这篇文章,但那里的所有解决方案似乎都使​​用了其他库。

4

2 回答 2

5

仅使用 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 应该做垂直和水平滚轮滚动。

于 2013-06-07T19:40:26.423 回答
3

On plain Xlib (C language), you can use the XTestExtension or XSendEvent(). I'm not sure about their python bindings. There are probably bindings for their xcb versions using xpyb.

There's also a binary called xte from the xautomation package (on Debian, sudo apt-get install xautomation and then man xte). xte is very easy to use, and you can also look at its source code to learn how to use the XTestExtension.

Pointers:

于 2012-04-21T15:25:26.777 回答