c++ - 多屏系统C中的鼠标光标位置

标签 c++ c linux mouse x11

如何在多屏Linux下用C语言在X窗口中设置鼠标光标?我有 2 个显示器(具有不同的分辨率)插入到单个 linux pc。 我使用“: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);
}

最佳答案

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

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

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

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

可能有用:)

关于c++ - 多屏系统C中的鼠标光标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4385475/

相关文章:

c++ - 如何为 QComboBox 的弹出菜单指定不同于框本身显示的字符串?

c++ - 有没有办法查询消息过滤器是否已经生效?

c++ - 策略转换仅适用于构造函数

c - 如何以句点 (.) 结束程序

linux - 如何从 perl 脚本检测我的服务器是否正在运行 centos 或其他

c++ - Linux 在文本模式下绘图(无图形界面,桌面)

c++ - C++ 中的基本 OSC 教程?使用什么库?

c++ - 是否有不需要包含标准库的 C/C++ 编译器?

c - 为什么类型转换为 void 指针?

python - 在 Linux 中管道 numpy 数据?