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

时间:2013-01-28 06:04:45

标签: c++ c linux mouse

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

我希望CC++实现此功能。任何信息将不胜感激。

1 个答案:

答案 0 :(得分:2)

首先,鼠标设备可能只发送相对移动,所以无法获得绝对位置(只是尝试用手抬起鼠标并将其放在别处),除非通过整合移动。

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

然后,您需要制作X11客户端应用程序。见this& that问题。但是你在使用一些现有的工具包库方面会好得多,比如Qt或GTK;见例如QMouseEvent& Qt中的QWidget::mouseMoveEvent和Gtk中的GtkWidget "motion-notify-event" signal(以及许多其他功能)。

另见this question