有没有办法检查用户当前是否闲置?

时间:2008-08-21 01:15:00

标签: .net windows user-interface tray

互联网上有一些文档显示,如果用户当前处于空闲状态且Windows为detected by checking for keyboard and mouse events,则Windows会更改NotifyIcon.BalloonTipShown命令的行为。我目前正在开发一个将大部分时间花在系统托盘上的应用程序,但不时弹出多个气球提示,我想阻止用户在目前远离系统。由于任何当前显示的气球提示如果显示新的气球提示都会被销毁,如果用户离开,我想暂缓显示它们。

因此,如果应用程序最小化到系统托盘,有没有办法检查用户当前是否处于空闲状态?

3 个答案:

答案 0 :(得分:4)

Win32 LASTINPUTINFO功能怎么样?

using System.Runtime.InteropServices;

[DllImport("User32.dll")] 
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);

struct LASTINPUTINFO 
{
    public uint cbSize;
    public uint dwTime;
}

答案 1 :(得分:1)

托管代码

每秒检查鼠标的位置。如果有用户有新消息,请抓住它们,直到用鼠标检测到任何移动为止。

非托管代码

请参阅Detecting Idle Time with Mouse and Keyboard Hooks

答案 2 :(得分:0)

感谢您的回复,我最终使用了GetLastInputInfo函数,因为它非常直接在我正在处理的应用程序中实现。