系统空闲检测

我想检测系统是否空闲,即:用户不使用系统。 我希望它像Windows Live Messenger一样,当我离开计算机3分钟时自动更改,我希望在代码中设置这个时间。

我正在使用visual studio 2008和2010在C#环境下开发WPF,所以如果这两种方法都很好用的话。

有一篇关于CodeProject的文章可以帮助你入门。

此链接似乎还为该任务提供了WinForms组件:

http://www.codeproject.com/KB/miscctrl/Application_Idle.aspx

我已经提供了检测WPF中的不活动和活动的答案,它可能对您有意义:

  • WPF不活动和活动

Windows确实提供了一些API,尽管它们对于多个会话或类似的东西都不可靠。
我使用的是使用SetWindowsHookEx(); WW_MOUSE_LL的钩子SetWindowsHookEx(); 那是在C.必须与C#非常相似。
基本上当用户使用鼠标执行某些操作时,计时器会再次从0开始,如果计时器达到某个值,则会执行某些操作(act-if系统处于空闲状态)。
您也可以将其与键盘挂钩,以防用户只是键入,并在两个线程之间共享计时器。 它对我来说很棒。