Насколько я знаю, два способа получить положение мыши используют libgpm
или чтение /dev/input/mice
файл. Но последний просто возвращает относительное положение с последней позиции. Итак, мой вопрос, как я могу получить абсолютная позиция мыши хоть читаю /dev/input/mice
или другим способом.
И я хочу реализовать эту функцию путем C
или же C++
, Любая информация будет оценена.
Во-первых, устройство мыши, вероятно, посылает только относительные движения, поэтому невозможно получить абсолютное положение (просто попробуйте поднять мышь рукой и поместить ее в другое место), за исключением объединения движения.
И почти все графические среды Linux выше X11, так что это сервер X11 (обычно Xorg
процесс), который имеет дело с мышью (это единственный процесс, на самом деле чтение /dev/input/mice
)
Затем вам нужно будет создать клиентское приложение X11. Увидеть этот & тот вопрос. Но вы будете намного лучше в использовании некоторой существующей библиотеки инструментария, такой как Qt или GTK; см. например QMouseEvent & QWidget :: mouseMoveEvent в Qt и GtkWidget сигнал «движение-уведомление-событие» в Gtk (и многие другие функции).
Смотрите также этот вопрос
Других решений пока нет …