我希望能够检测系统是否空闲,即:用户没有使用系统。就像Windows Live Messenger一样,当我离开电脑3分钟时,它会自动变成离开状态,我想在代码中设置这个时间。 我正在使用C#环境下的WPF,在Visual Studio 2008和2010中都使用,如果有一种方法可以在两种环境中都适用,那就太好了。
Windows提供了一些API,虽然它们对于多个会话或类似的东西并不可靠。 我使用的是一个钩子来WW_MOUSE_LL和SetWindowsHookEx();。这是用C语言实现的,对于C#应该非常相似。基本上,每当用户使用鼠标时,计时器就会从0开始计时,如果计时器达到某个值,您可以在此之上执行某些操作(例如,如果系统处于空闲状态,则执行某些操作)。您还可以使用键盘钩子,在用户只是输入时共享两个线程之间的计时器。这对我非常有效。