2013-06-28 4 views
0

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

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

+0

Почему вы хотите проверить, нет ли реальной активности мыши или клавиатуры? Я подозреваю, что какой-то особый пользовательский интерфейс (возможно, для людей с нарушениями зрения) может обеспечить «виртуальную» мышь и т. Д. Почему вы хотите обнаружить инструменты автоматизации? (достаточно мотивированный человек всегда мог бы обойти ваше обнаружение, например, исправляя надлежащим образом сервер Xorg ...) –

+0

@Basile, То, что вы делаете, верное. В основном я пишу небольшое приложение, которое должно сообщать мне о простаивающей активности пользователя на компьютере (ПК). Используя эти данные, я хочу определить, сколько часов в неделю человек действительно работает (это все равно предполагается, что если человек либо использует мышь, либо клавиатуру, то подразумевает работу). Реальные события клавиатуры/мыши указывают на физическую активность, которая поддерживает точку, указанную выше. Я не думал о правилах доступности для этого приложения, которые я оставляю позже. Спасибо – user1292737

+0

Вы уверены, что развертывание такой «шпионской» программы законно (без явного согласия пользователя)? В какой-то стране (вероятно, во Франции) этого, вероятно, не будет, и я уверен, что любой пользователь сможет ее обойти. Люди могут (и делают) работать, не набрав всегда ... и люди могут набирать, не работая действительно ... –

ответ

0

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

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

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

Смежные вопросы