c# - 在工作人员服务 .net 5 中检测到 Windows 关闭/注销/登录
问题描述
我将此代码用于 .net 框架并正常工作。但在.net 5 中不起作用。我想要 Windows 注销或登录时的日志状态等。
public Worker()
{
CanHandlePowerEvent = true;
CanHandleSessionChangeEvent = true;
}
protected override void OnSessionChange(SessionChangeDescription changeDescription)
{
switch (changeDescription.Reason)
{
case SessionChangeReason.SessionLogon:
Console.WriteLine("System Log On Time: \t " + DateTime.Now);
break;
case SessionChangeReason.SessionLogoff:
Console.WriteLine("System Log Off Time: \t " + DateTime.Now);
break;
case SessionChangeReason.RemoteConnect:
Console.WriteLine("System Remote Connect Time: \t " + DateTime.Now);
break;
case SessionChangeReason.RemoteDisconnect:
Console.WriteLine("System Remote Disconnect Time: \t " + DateTime.Now);
break;
case SessionChangeReason.SessionLock:
Console.WriteLine("System Locked Time: \t" + DateTime.Now);
break;
case SessionChangeReason.SessionUnlock:
Console.WriteLine("System Unlocked Time: \t " + DateTime.Now);
break;
default:
break;
}
}
解决方案
推荐阅读
- logrotate - 仅使用 maxage 进行 Logrotate
- python - 如何确定(使用终端)正在安装哪个版本的 python pip(MacOS)
- swift - OSX 中的 SwiftUI 自定义文本字段
- node.js - 在 AWS 上的 NGINX Web 服务器上运行的 NodeJS 中无法找出 504 错误
- java - Gradle:无法实例化 SLF4J LoggerFactory 错误
- amazon-web-services - 进出 AWS Api Gateway 的不同响应
- javascript - 如何向非营利网站添加捐赠功能?
- python - Django 不在数据库中存储密码
- go - 在不知道它们的类型的情况下比较来自两个接口的结构字段?
- azure - Azure 应用服务自定义域 - 网站功能不同