прослушивание событий клавиш / мыши - PullRequest
5 голосов
/ 21 июня 2011

Можно ли прослушивать события нажатия клавиш и мыши, не выбирая графический интерфейс пользователя?Я хочу сделать программу, которая работает в фоновом режиме без графического интерфейса и реагирует на взаимодействие с пользователем, такое как нажатие ctrl-t.

1 Ответ

2 голосов
/ 21 июня 2011

Менеджер окон будет отслеживать фокус и прямой ввод в соответствии с его конфигурацией. Если ваш оконный менеджер решает отправить входные данные в другую программу, потому что он вызывает изменение фокуса, вам не повезло.

Хотя программе не хватает фокуса, если бы она могла получать события мыши и клавиатуры, это было бы серьезной дырой в безопасности. По сути, любая небольшая незаметная фоновая программа может шпионить за всей системой, возможно даже при краже паролей.

Ваша единственная надежда - найти опцию в вашем оконном менеджере, которая позволит вам свернуть программу без изменения фокуса. Конечно, все, что вы введете, будет работать только с свернутой программой (и не повлияет на остальную часть системы).

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

...