有没有一种方法可以查看用户当前是否闲置?
时间:2020-03-05 18:41:21 来源:igfitidea点击:
互联网上有一些文档显示,如果用户当前空闲,并且通过检查键盘和鼠标事件检测到Windows,Windows会更改NotifyIcon.BalloonTipShown命令的行为。我目前正在使用一个应用程序,该应用程序的大部分时间都花在系统任务栏中,但有时会弹出多个提示框,并且如果它们当前不在屏幕上,我想防止用户错过其中的任何提示系统。由于如果显示一个新的气球提示,那么当前显示的所有气球提示都会被破坏,因此如果用户不在,我想暂不显示它们。
这样,如果将应用程序最小化到系统托盘,是否有任何方法可以检查用户当前是否空闲?
解决方案
回答
托管代码
每秒检查鼠标的位置。如果有要发送给用户的新消息,请保留这些消息,直到我们检测到鼠标有任何移动。
非托管代码
请参阅使用鼠标和键盘挂钩检测空闲时间
回答
Win32 LASTINPUTINFO函数如何?
using System.Runtime.InteropServices; [DllImport("User32.dll")] static extern bool GetLastInputInfo(ref LASTINPUTINFO plii); struct LASTINPUTINFO { public uint cbSize; public uint dwTime; }
回答
感谢答复,我最终使用了GetLastInputInfo函数,因为它可以很直接地在我正在处理的应用程序中实现。