[英]How to check whether the logged-in user is interactive or idle in wpf application
在WPF
应用程序中,我让用户登录,但是如何检查登录的用户是交互式的还是空闲的?
交互式 :如果用户每分钟都在使用该应用程序。
空闲 :如果用户在一分钟内未使用应用程序。
可能的解决方案:一种可能的解决方案是,我们设置一个计时器,该计时器连续计算持续时间并将其保存回数据库。
但是我不想为我的应用程序增加计时器的开销,因为它已经具有很高的处理时间。 此外,如果用户只是关闭PC而没有从应用程序注销,则可以跳过数据库存储部分。
计时器还不错,尝试这样的事情。
您可以在以下位置找到客户端空闲处理程序类: ClientIdleHandler.cs
class GetIdleTime
{
private DispatcherTimer dispatcherTimer;
private ClientIdleHandler _clientIdleHandler;
//call for idle time
public void callForIdletime()
{
_clientIdleHandler = new ClientIdleHandler();
_clientIdleHandler.Start();
//start timer
dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += TimerTick;
dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 10);
dispatcherTimer.Start();
}
private void TimerTick(object sender, EventArgs e)
{
if (_clientIdleHandler.IsActive)//active
{
//What you gonna do when idle
}
}
}
你可以做
var timer = new DispatcherTimer
(
TimeSpan.FromMinutes(5),
DispatcherPriority.ApplicationIdle,// Or DispatcherPriority.SystemIdle
(s, e) => { mainWindow.Activate(); }, // or something similar
Application.Current.Dispatcher
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.