Как узнать, когда пользователь последний раз нажимал клавишу (или перемещал мышь)? - PullRequest
7 голосов
/ 05 августа 2008

В среде Win32 вы можете использовать API-вызов GetLastInputInfo в Документация Microsoft . По сути, этот метод возвращает последний тик, который соответствует последнему введенному пользователем вводу, и вы должны сравнить его с текущим тиком, чтобы определить, как давно это было.

Xavi23cr имеет хороший пример для C # в codeproject .

Какие-либо предложения для других сред?

Ответы [ 2 ]

3 голосов
/ 05 августа 2008

Что касается Linux, я знаю, что Pidgin должен определить время простоя, чтобы через некоторое время изменить свой статус на отсутствующий. Вы можете открыть исходный код и посмотреть, сможете ли вы найти код, который делает то, что вам нужно.

1 голос
/ 06 августа 2008

Кажется, вы ответили на свой вопрос, Натан ;-) «GetLastInputInfo» - это путь.

Одна хитрость заключается в том, что если ваше приложение работает на настольном компьютере, а пользователь подключается к виртуальной машине, то GetLastInputInfo не сообщит об активности (поскольку на хост-компьютере нет активности).

Это может отличаться от желаемого поведения в зависимости от того, как вы хотите применить пользовательский ввод.

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