1

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

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

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

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

4

1 回答 1

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

于 2013-09-12T11:24:10.270 回答