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

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

У Xavi23cr есть хороший пример C # в codeproject .

Любые предложения для других сред?

5.08.2008 19:06:40
Этот блог имеет различные решения для какао.
Sören Kuklau 17.08.2008 18:36:10
Я удалил тег winapi, так как у OP уже есть ответ winapi, и он говорит, что он преследует что-то кроме winap.
Deanna 11.10.2012 13:27:56
2 ОТВЕТА

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

3
5.08.2008 19:14:47

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

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

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

1
6.08.2008 01:58:18
Он ищет предложения в среде, отличной от Windows.
mnuzzo 21.06.2009 22:22:52