Обнаружение нажатий клавиш, когда приложение не сфокусировано - PullRequest
2 голосов
/ 23 августа 2011

У меня есть приложение, которое живет в трее, и мне нужно определить активность пользователя, чтобы я мог выполнять определенные задачи.Для окон я знаю, что могу использовать GetAsyncKeyState или SetWindowsHookEx, но я хотел бы иметь кроссплатформенное решение.

У кого-нибудь есть решение для этого?может быть переопределение keyPressEvent?Или было бы проще просто настроить некоторые макросы и сделать это отдельно?

1 Ответ

2 голосов
/ 23 августа 2011

Это, по сути, зависит от платформы.

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

Возможно, вы захотите взглянуть на то, что SDL сделал здесь. http://www.libsdl.org/

Им удалось абстрагироваться от всего этого, не только от клавиатуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...