【问题标题】:How to get last system shutdown\boot time (Win10)如何获取上次系统关机\开机时间(Win10)
【发布时间】:2021-12-01 06:15:28
【问题描述】:

我尝试获取最后一次系统关闭和\或重新启动。 但这对我不起作用。

我在昨天重新启动我的机器并在 10 分钟前关闭电源。 但是代码告诉我上次关闭 - 这是酵母日。

我读过这个问题:

Get the date-time of last windows shutdown event using .NET

How to know when was Windows started or shutdown?

但它不适用于我的机器。

我试试这个代码:

  var _rebootPerformanceCounter = new global::System.Diagnostics.PerformanceCounter("System", "System Up Time");
   _rebootPerformanceCounter.NextValue(); 
        var uptimeSpan = TimeSpan.FromSeconds(_rebootPerformanceCounter.NextValue());
        var uptime = uptimeSpan.ToString();

还有这个:

  string sKey = @"System\CurrentControlSet\Control\Windows";
        using (Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(sKey))
        {
            string sValueName = "ShutdownTime";
            byte[] val = (byte[]) key.GetValue(sValueName);
            long valueAsLong = BitConverter.ToInt64(val, 0);
            var shutdownTime= DateTime.FromFileTime(valueAsLong);


            Console.WriteLine(shutdownTime); //THIS             
        }

还有这个:

   if (EventLog.Exists("System"))
        {
            var log = new EventLog("System", Environment.MachineName, "EventLog");

            var entries = new EventLogEntry[log.Entries.Count];
            log.Entries.CopyTo(entries, 0);

            var startupTimes = entries.Where(x => x.InstanceId == 2147489653).Select(x => x.TimeGenerated);
            var shutdownTimes = entries.Where(x => x.InstanceId == 2147489654).Select(x => x.TimeGenerated);
            var shutdownEvents = entries.Where(x => x.InstanceId == 2147484722);
        }

所以,值是相同的:它说我昨晚重新启动了我的机器并且没有显示最后一次关机时间。 我在 PC 和笔记本电脑上尝试此代码,结果相同。 在我的电脑上,我有不间断的电源装置,我把它关掉了。

所以我很困惑。我做错了什么?

【问题讨论】:

  • 我认为 Windows 无法将重启与重启分开,这就是为什么你得到相同结果的原因
  • 但是 windows 可以 - 它只显示上次重启,但不显示关机-upstart 时间
  • 关机时间并不总是存在的。例如,想象一下突然断电。

标签: c# .net windows .net-core performancecounter


【解决方案1】:

解决方案很简单:我应该关闭“智能电源管理” -

 powercfg -h off 

代码有效!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多