2008-08-05 1 views
6

В среде Win32 вы можете использовать вызов API GetLastInputInfo see msdn doc. В принципе, этот метод возвращает последний тик, который соответствует тому, когда пользователь в последний раз вводил вход, и вы должны сравнить его с текущим тиком, чтобы определить, как давно это было.Как вы можете сказать, когда пользователь последний раз нажал клавишу (или переместил мышь)?

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

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

+0

[Это сообщение в блоге] (http://ryanhomer.com/blog/2007/05/31/detecting-when-your-cocoa-application-is-idle/) имеет различные решения для какао. – 2008-08-17 18:36:10

+0

Я удалил ярлык winapi, поскольку у OP уже есть ответ winapi, и говорит, что они находятся за чем угодно, кроме winap. – Deanna 2012-10-11 13:27:56

ответ

3

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

1

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

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

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