Прослушивайте события корневого окна с помощью X11Linux

Ответить
Anonymous
 Прослушивайте события корневого окна с помощью X11

Сообщение Anonymous »


Я уже некоторое время пытаюсь добиться этого, но не могу. XNextEvent никогда не вызывается. Я использую Ubuntu 22.04. Это код, который у меня есть на данный момент. Я хочу распечатать как щелчки, так и движения мыши. Я пробовал использовать XAllowEvents, XGrabPointer, это не сработает. Почему?
#include #include символ *имя_ключа[] = { "первый", «второй (или средний)», "третий", "четвертый", // :D "пятый" // :| }; int main(int argc, char **argv) { Дисплей *дисплей; XEvent xevent; Окно-окно; if( (display = XOpenDisplay(NULL)) == NULL ) вернуть -1; окно = DefaultRootWindow (дисплей); XAllowEvents (дисплей, AsyncBoth, CurrentTime); XGrabPointer(отображение, окно, 1, Маска PointerMotion | ButtonPressMask | КнопкаReleaseMask , GrabModeAsync, GrabModeAsync, Никто, Никто, Текущее время); в то время как (1) { XNextEvent(дисплей, &xevent); переключатель (xevent.type) { чехол MotionNotify: printf("Перемещение мыши: [%d, %d]\n", xevent.xmotion.x_root, xevent.xmotion.y_root); перерыв; чехол printf("Кнопка нажата: %s\n", key_name[xevent.xbutton.button - 1]); перерыв; чехол printf("Кнопка отпущена: %s\n", key_name[xevent.xbutton.button - 1]); перерыв; } } вернуть 0; }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»