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



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

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

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

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

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

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

指针:

  • http://cgit.freedesktop.org/xorg/lib/libXtst/
  • http://cgit.freedesktop.org/xcb/xpyb/
  • http://hoopajoo.net/projects/xautomation.html
  • http://linux.die.net/man/1/xte

相关内容

  • 没有找到相关文章

最新更新