Обнаружение холостого хода системы

Я хочу определить, находится ли система в режиме ожидания, т.е. пользователь не использует систему. Я хочу, чтобы он, как и Windows Live Messenger, автоматически менялся, когда я оставляю компьютер на время как 3 минуты, я хочу установить это время в коде.

Я работаю над WPF в среде С#, используя визуальную студию 2008 и 2010, поэтому, если это способ, который работает на обоих, это будет здорово.

Ответ 4

Windows действительно предоставляет некоторые API для этого, хотя они не надежны для нескольких сеансов или что-то в этом роде.
То, что я использовал, является привязкой к WW_MOUSE_LL с помощью SetWindowsHookEx(); То, что в C. Должно быть, очень похоже на С#.
Основываясь всякий раз, когда пользователь что-то делает с помощью мыши, таймер снова начинается с 0, а если таймер достигает какой-то ценности, вы что-то делаете (система act-if бездействует).
Вы также можете подключить ее с помощью клавиатуры, если пользователь просто набрал и разделит таймер между двумя потоками. Это прекрасно работает для меня.