3

Internet 上有一些文档显示,如果用户当前处于空闲状态,Windows 会更改 NotifyIcon.BalloonTipShown 命令的行为,这可以通过检查键盘和鼠标事件来检测。我目前正在开发一个应用程序,该应用程序大部分时间都在系统托盘中,但不时会弹出多个气球提示,我想防止用户在当前离开时错过其中的任何一个系统。由于如果显示新的气球提示,任何当前显示的气球提示都会被破坏,所以如果用户不在,我想推迟显示它们。

因此,如果应用程序最小化到系统托盘,有什么方法可以检查用户当前是否空闲?

4

3 回答 3

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;
}
于 2008-08-21T01:19:35.600 回答
1

托管代码

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

非托管代码

请参阅使用鼠标和键盘挂钩检测空闲时间

于 2008-08-21T01:18:27.257 回答
0

感谢您的回复,我最终选择了 GetLastInputInfo 函数,因为它在我正在处理的应用程序中实现起来非常简单。

于 2008-08-21T14:06:23.743 回答