捕获系统中的有效登录和注销时间?

时间:2013-09-12 07:52:43

标签: c# asp.net .net windows session

这里我试图捕获系统的总登录和注销时间。 假设一个用户登录系统在上午9点然后在11AM锁定系统(windows + L)然后再在3PM解锁它并在下午6点锁定/注销当天。然后有效时间是2 + 3 = 5小时。 / p>

如果用户锁定系统,则不应计算时间。 该应用程序的目的是跟踪任何用户登录的有效时间并向管理员发送邮件......我首先关注时间跟踪级别。

我认为会话是捕获场景的最佳方式..但必须保留场景。如果用户登录的同一天然后锁定系统然后在他开始的同一天完全关闭系统..系统和工作然后..所有工作时间将在同一天..

需要进行计算...... 24天内用户的有效工作时间。

1 个答案:

答案 0 :(得分:0)

为什么不编写Windows服务,并检查最后一次输入?

// Step 1
using System.Runtime.InteropServices;

// Steps 2 and 3
[DllImport("User32.dll")]
private static extern bool 
        GetLastInputInfo(ref LASTINPUTINFO plii);

//Step 4
internal struct LASTINPUTINFO 
{
    public uint cbSize;

    public uint dwTime;
}

上面的代码在此代码项目链接中得到了很好的解释。 http://www.codeproject.com/Articles/13384/Getting-the-user-idle-time-with-C