鼠标光标在多屏幕系统上的位置

时间:2010-12-08 08:29:04

标签: c++ c linux mouse x11

如何在多屏幕的Linux下在C窗口的X窗口中设置鼠标光标?我有2个显示器(具有不同的分辨率)插入一个Linux电脑。 我使用“:0.1”来寻址第二台显示器。我从监视器1运行应用程序,同时将鼠标保持在监视器1上......结果鼠标移动但不跳到监视器2上。 如果我手动将鼠标光标放在监视器2上并从监视器1运行应用程序,则鼠标移动。

我需要一种在显示器之间移动光标的方法。

#include "Xlib.h"
int main() {
  int delta_x = 5, delta_y = 5;
  Display *display = XOpenDisplay(":0.1");
  // move pointer relative to current position
  XWarpPointer(display, None, None, 0, 0, 0, 0, delta_x, delta_y);
  XCloseDisplay(display);
}

1 个答案:

答案 0 :(得分:4)

您需要传递希望指针移动到的显示器根窗口的句柄:

    root = RootWindow(display, screennumber);
    XWarpPointer(display, None, root, 0, 0, 0, 0, x, y);

这里有一个完整的工作C示例:

http://www.ishiboo.com/~danny/Projects/xwarppointer/

可能有用:)