Эквиваленты функций Windows API (SetCursorPos, GetCursorPos, mouse_event, keybd_event ...) для Linux (X11)? - PullRequest
1 голос
/ 11 октября 2009

Мне было интересно, есть ли эквиваленты вышеупомянутых функций для Linux (X11) - я не могу их найти.

Ответы [ 2 ]

1 голос
/ 12 октября 2009

Нужные вам функции Xlib XQueryPointer() и XWarpPointer().

У меня были проблемы с ними, которые не всегда возвращали то, что можно было ожидать. Расширение XTest, как упомянуто выше, смогло удовлетворить мои потребности. В частности, библиотечная функция XTestFakeRelativeMotionEvent() хорошо работала для того, что я делал. YMMV.

0 голосов
/ 12 октября 2009

Разделяя GetCursorPos, то, что вы по существу хотите здесь сделать, это эмулировать пользовательский ввод, такой как перемещение указателя мыши в заданном месте, или ввод с помощью кнопки мыши / клавиатуры.

Это не является частью стандартного API X11. Тем не менее, расширение XTest предоставляет эту функциональность, и оно должно поставляться с каждой достойной реализацией X11. Другой возможностью может быть расширение XTrap.

Вот ссылка на XTest: X11 XTEST EXTENSION (PDF)

Для GetCursorPos я не знаю простого эквивалента прямо сейчас (хотя я предполагаю, что он есть). Однако вы всегда можете обработать события движения, которые сообщат вам, куда был перемещен указатель, при каждом его перемещении.

...