如何在C中获得Linux中的绝对鼠标位置

据我所知,获取鼠标位置的两种方法是使用libgpm或读取/dev/input/mice文件。 但后者只是从最后一个位置返回一个相对位置。 所以我的问题是如何通过阅读/dev/input/mice或其他方式获得绝对鼠标位置

我想用CC++实现这个function。 任何信息将不胜感激。

首先,鼠标设备可能只发送相对运动,因此无法获得绝对位置(只需尝试用手抬起鼠标并将其放在其他位置),除非通过整合运动。

几乎所有Linux GUI环境都高于X11 ,因此它是处理鼠标的X11服务器(通常是Xorg进程)(它是实际读取/dev/input/mice的唯一进程)

然后,您需要制作X11客户端应用程序。 看到这个和那个问题。 但是你在使用一些现有的工具包库方面会好得多,比如Qt或GTK; 参见例如Qt中的QMouseEvent和QWidget :: mouseMoveEvent ,以及Gtk(以及许多其他函数)中的GtkWidget“motion-notify-event”信号 。

另见这个问题