繁体   English   中英

如何在WPF应用程序中检查登录用户是交互式的还是闲置的

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM