据我所知,获得鼠标位置的两种方法是使用libgpm
或读取/dev/input/mice
文件。但后者只是从最后一个位置返回一个相对位置。所以我的问题是如何通过阅读或其他方式获得绝对鼠标位置。/dev/input/mice
我想通过C
or来实现这个功能C++
。任何信息将不胜感激。
首先,鼠标设备可能只发送相对运动,因此无法获得绝对位置(只需尝试用手抬起鼠标并将其放在其他地方),除非通过整合运动。
而且几乎所有 Linux GUI 环境都在X11之上,所以它是 X11 服务器(通常是Xorg
进程)处理鼠标(它是唯一实际读取的进程/dev/input/mice
)
然后您需要制作一个 X11 客户端应用程序。看到这个&那个问题。但是你会更好地使用一些现有的工具包库,比如 Qt 或 GTK;参见Qt 中的QMouseEvent和QWidget::mouseMoveEvent ,以及 Gtk 中的 GtkWidget“motion-notify-event”信号(以及许多其他功能)。
另请参阅此问题