X11 и поддельные события клавиатуры/мыши

Я хочу знать, как вы определяете, было ли событие нажатия клавиши или событие указателя мыши сгенерировано (подобным автоматизации) приложением, таким как xdotool. По сути, я пишу приложение, чтобы проверить, нет ли реальной активности мыши или клавиатуры. В моем приложении я хочу помечать активность бездействия, только если у нас нет реального движения мыши или реального нажатия/отпускания клавиши на клавиатуре. Любая ссылка на это было бы здорово. Я хочу сделать это, используя чистый xlib API. Не хочу использовать XCB. Любые расширения, такие как XRecord (которое я сейчас использую для захвата событий), в порядке.

Заранее спасибо.


person user1292737    schedule 28.06.2013    source источник
comment
Почему вы хотите проверить, нет ли реальной активности мыши или клавиатуры? Я подозреваю, что какой-то специфический пользовательский интерфейс (возможно, для пользователей с нарушениями зрения) может предоставлять виртуальную мышь и т. д. Почему вы хотите обнаруживать инструменты автоматизации? (достаточно мотивированный человек всегда может обойти ваше обнаружение, например, адекватно исправив сервер Xorg...)   -  person Basile Starynkevitch    schedule 28.06.2013
comment
@Basile, ты прав. По сути, я пишу небольшое приложение, которое должно сообщать мне об активности пользователя на компьютере (ПК). Используя эти данные, я хочу определить, сколько часов в неделю человек эффективно работает (это все еще предполагает, что если человек использует мышь или клавиатуру, подразумевает работу). Реальные события клавиатуры/мыши указывают на физическую активность, которая поддерживает точку зрения, сделанную выше. Я не думал о положениях о доступности для этого приложения, которые я оставляю на потом. Спасибо   -  person user1292737    schedule 28.06.2013
comment
Вы уверены, что развертывание такой программы-шпиона законно (без явного согласия пользователя)? В какой-то стране (вероятно, во Франции) его скорее всего не будет, и я уверен, что любой пользователь сможет его обойти. Люди могут (и работают) работать, не печатая постоянно... и люди могут печатать, не работая по-настоящему...   -  person Basile Starynkevitch    schedule 28.06.2013


Ответы (1)


Да есть возможность.

Все события X11, относящиеся к движениям мыши и кликам, имеют элемент с именем «send_event». Для него установлено значение «Истина», если событие было отправлено приложением. Это "False", если оно было сгенерировано X-сервером, то есть действием пользователя.

Если xdotool использует SendEvent для имитации щелчка мышью, вы сможете обнаружить это с помощью члена «send_event».

person DemoRecorder.com    schedule 01.07.2013