一尘不染

以编程方式确定锁定工作站的持续时间?

c#

如何用代码确定机器被锁定了多长时间?

也欢迎使用C#之外的其他想法。


我喜欢Windows服务的想法(并且已经接受了它)是为了简洁和整洁,但是不幸的是,我认为在这种特殊情况下它不会对我有用。我想在工作而不是在家中(或者我想在家中)在我的工作站上运行此程序,但是出于国防部的考虑,它很难解决。实际上,这就是我自己推出自己的原因的一部分。

无论如何,我都会写出来,看看它是否有效。谢谢大家!


阅读 242

收藏
2020-05-19

共1个答案

一尘不染

我以前没有找到这个,但是从任何应用程序中,您都可以连接SessionSwitchEventHandler。显然,您的应用程序将需要运行,但前提是:

Microsoft.Win32.SystemEvents.SessionSwitch += new Microsoft.Win32.SessionSwitchEventHandler(SystemEvents_SessionSwitch);

void SystemEvents_SessionSwitch(object sender, Microsoft.Win32.SessionSwitchEventArgs e)
{
    if (e.Reason == SessionSwitchReason.SessionLock)
    { 
        //I left my desk
    }
    else if (e.Reason == SessionSwitchReason.SessionUnlock)
    { 
        //I returned to my desk
    }
}
2020-05-19