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

C# 捕获系统中的有效登录和注销时间?,c#,asp.net,.net,windows,session,C#,Asp.net,.net,Windows,Session,在这里,我试图捕获系统的总登录和注销时间。 假设用户在上午9点登录系统,然后在上午11点锁定系统windows+L,然后在下午3点再次解锁,并在下午6点锁定/注销一天。那么有效时间为2+3=5小时 如果用户锁定系统,则不应计算计时。。 此应用程序的目的是跟踪任何用户登录的有效时间,并向经理发送邮件……我首先关注时间跟踪级别 我认为会话是捕获场景的最佳方式。但必须保留场景。如果用户在同一天登录,则锁定系统,然后完全关闭系统。在同一天,他再次启动系统并继续工作。所有工作时间将在同一天内 需要进行计算

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

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

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


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

为什么不编写一个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;
}

上面的代码在这个codeproject链接中解释得很好

那个么你们到底想要什么,你们试过什么呢?我想问题是如何检测计算机何时基本上并没有被使用。。。但我认为这对你们的员工不公平。。。有时我不得不离开我的电脑继续和其他人一起工作或参加会议,或者只是让它计算一些长时间的任务。此外,登录,但上网仍然会被视为工作。。。嗯…@RoyDictus我只是想知道如何接近它。@Sayse我知道它非常有害的工具,但必须根据客户的需要跟踪时间:几乎是一样的……非常感谢: