据我所知,获取鼠标位置的两种方法是使用libgpm
或阅读/dev/input/mice
文件。但后者只是从最后一个位置返回相对位置。所以我的问题是如何通过阅读/dev/input/mice
或其他方式获得绝对鼠标位置。
我希望C
或C++
实现此功能。任何信息将不胜感激。
答案 0 :(得分:2)
首先,鼠标设备可能只发送相对移动,所以无法获得绝对位置(只是尝试用手抬起鼠标并将其放在别处),除非通过整合移动。
几乎所有Linux GUI环境都高于X11,因此处理鼠标的是X11服务器(通常是Xorg
进程)(它是实际读取的唯一进程{{1} })
然后,您需要制作X11客户端应用程序。见this& that问题。但是你在使用一些现有的工具包库方面会好得多,比如Qt或GTK;见例如QMouseEvent& Qt中的QWidget::mouseMoveEvent和Gtk中的GtkWidget "motion-notify-event" signal(以及许多其他功能)。