【问题标题】:Is it possible to move a mouse cursor to an xvfb virtual display using perl?是否可以使用 perl 将鼠标光标移动到 xvfb 虚拟显示器?
【发布时间】:2026-01-24 16:20:14
【问题描述】:

我被指示尝试做一个小的概念证明。为了使它工作,我需要能够将鼠标移动到 xvfb 生成的虚拟显示器上。这可能吗?我似乎找不到任何将鼠标移到虚拟屏幕上的方法,因为它并没有真正“连接”到其他屏幕。

我正在使用 perl 脚本来自动化一些鼠标移动,因此最终目标是让我的脚本将鼠标移动到该屏幕上,但我怀疑第一步是将鼠标移到 xvfb 屏幕上,然后从那里找出如何使用 perl 自动执行操作。

编辑:如果重要的话,我在 RHEL 上。

编辑 2:另外,我正在使用 X11::GUITest

【问题讨论】:

  • 你能解释一下“将鼠标移到屏幕上”吗?您真的想移动鼠标,还是只是将“鼠标移动”事件发送到 XVFB 内运行的程序?大多数程序不查询鼠标位置,而是获取鼠标移动或鼠标点击。
  • 如果您提供有关您尝试控制的程序的信息也会有所帮助 - 它使用哪种 GUI 工具(GTK,...),一些工具包提供了一种重播方式事件。
  • 我们使用 X11:GUITest 进行屏幕交互。看起来,现在,我们利用 MoveMouseAbs(x,y) 将鼠标移动到我们想要的位置,例如。我很难找到有关其工作原理的文档,但我不确定是否可以重载它以支持将其移动到正确的 XServer
  • 另外,我想将鼠标移动事件发送到程序可能会起作用 - 你有很好的资源来阅读它吗?我也会自己做一些搜索。
  • 如果您使用“MoveMouseAbs”(DISPLAY 指向 XVFB 端口),它应该为应用程序移动 (XVFB) 鼠标(通过发送鼠标移动)。您不需要显示XVFB,或将物理鼠标移动到 XVFB。您可能必须“单击”鼠标,具体取决于设置窗口管理器/应用程序以将 FOCUS 放入应用程序的方式。

标签: perl x11 rhel7 xvfb


【解决方案1】:

如果您使用TK,则有一个模块供您执行此操作: https://metacpan.org/pod/Tk::CursorControl

【讨论】:

    最近更新 更多