首页 > 解决方案 > 在工作人员服务 .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;
            }
        }

标签: c#worker

解决方案


推荐阅读