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

mat*_*ots 5 python xlib wiimote

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

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

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

use*_*851 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()
Run Code Online (Sandbox Code Playgroud)

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


pza*_*oni 3

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

还有一个xtexautomation包中调用的二进制文件(在 Debian 上,sudo apt-get install xautomation然后是man xte)。xte非常容易使用,你也可以查看它的源代码来学习如何使用XTestExtension.

指针:

  • 经过进一步搜索,Python 上的“Xlib.ext.xtest”可能相当于“XTestExtensions”。无论如何,“xtest.fake_input”效果很好。 (2认同)