Есть ли способ нажать любую кнопку в Ubuntu, даже если она не нажата в моем окне приложения C / C ++? - PullRequest
0 голосов
/ 20 июня 2019

Я занимаюсь разработкой небольшого приложения, которое будет показывать предупреждение, когда я не нажимаю ни одну клавишу или нажимаю какую-либо кнопку мыши какое-то время, просто чтобы помочь мне сосредоточиться. Но я не могу найти способ нажимать кнопки за пределами рамки приложения.

Мое приложение разработано на C для Ubuntu 18.04 с использованием gnome в качестве среды рабочего стола. Я подумал, что если бы это было каким-то образом, это было бы с помощью методов библиотеки X11, поэтому я пытался их использовать, но безуспешно. Метод XNextEvent захватывает только события, когда мое приложение сфокусировано.

Мне не нужно знать, какая клавиша или кнопка мыши были нажаты, это не кейлоггер . Все, что меня интересует, было ли событие с помощью мыши или клавиатуры.

1 Ответ

2 голосов
/ 20 июня 2019

отображать оповещение, когда я не нажимал какую-либо клавишу или не нажимал какую-либо кнопку мыши какое-то время

Это очень похоже на то, что будет делать экранная заставка, и наиболее эффективным способом ее реализации будет использование расширения X11 Screen Saver . Функция XScreenSaverQueryInfo заполняет структуру, которая включает количество миллисекунд с момента последнего пользовательского ввода (saver_info.idle).

...