如何在c#中检测我的应用程序空闲
本文关键字:我的 应用程序 检测 | 更新日期: 2023-09-27 17:54:32
可能重复:
检查应用程序是否空闲一段时间并锁定
假设我有一个用C#开发的Windows产品。现在有一个要求是,如果该应用程序正在运行且空闲,并且当用户尝试再次与该应用程序交互时,则会出现登录屏幕。如何检测我的应用程序在运行时处于空闲状态?请指导我完成这项工作。
- 将计时器控件添加到应用程序
- 订阅mouseover和keydown事件-当它们启动时,重置计时器
- 计时器启动时(鼠标(还没动,钥匙也没动按下x时间(,锁定登录屏幕/提示
您可以使用Control.LostFocus记录用户导航离开的时间,然后使用Control.GotFocus检查经过了多少时间,以确定他们是否需要登录。
下面是我的简单解决方案:
Point cursorPoint;
int minutesIdle=0;
private bool isIdle(int minutes)
{
return minutesIdle >= minutes;
}
private void idleTimer_Tick(object sender, EventArgs e)
{
if (Cursor.Position != cursorPoint)
{
// The mouse moved since last check
minutesIdle = 0;
}
else
{
// Mouse still stoped
minutesIdle++;
}
// Save current position
cursorPoint = Cursor.Position;
}
您可以设置一个以60000间隔运行的计时器。通过这种方式,您将只知道用户有多少分钟没有移动鼠标。您也可以在Tick事件本身调用"isIdle"来检查每个间隔。
捕获Form类对象的离开事件,以知道它已失去焦点。