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

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

有帮助吗?

解决方案

Win32 怎么样? 最后输入信息 功能?

using System.Runtime.InteropServices;

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

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

其他提示

托管代码

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

非托管代码

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top