【问题标题】:How to Get Last Shutdown Time using C#如何使用 C# 获取上次关机时间
【发布时间】:2020-06-26 22:54:29
【问题描述】:

我有一个应用程序,它需要获取上次关闭时间。我使用 EventLog 类来获取关机时间。我有单独的类文件,旨在读/写事件日志。 ReadPowerOffEvent 函数用于获取关机事件。

public void ReadPowerOffEvent()
    {
        EventLog eventLog = new EventLog();
        eventLog.Log = logName;
        eventLog.MachineName = machineName;

        if (eventLog.Entries.Count > 0)
        {
            for (int i = eventLog.Entries.Count - 1; i >= 0; i--)
            {
                EventLogEntry currentEntry = eventLog.Entries[i];

                if (currentEntry.InstanceId == 1074 && currentEntry.Source=="USER32")
                {
                    this.timeGenerated = currentEntry.TimeGenerated;
                    this.message = currentEntry.Message;
                }
            }
        }
    }

但每当它试图获取事件条目计数时,它就会抛出一个 IOException 说“找不到网络路径”。我试图解决,但我失败了。请帮帮我...

【问题讨论】:

  • 您可以使用 [this answer][1] 来确定使用 WMI 的正常运行时间。 [1]:stackoverflow.com/questions/972105/…
  • 我觉得这个老问题对你有帮助。stackoverflow.com/questions/1631933/…
  • @Kane,我已经在我的应用程序中做了这个系统运行时间的事情。我的问题是获取PC上次关机的时间,并检测它是关机事件还是重新启动并计算关机时间。这就是为什么我需要使用 EventViewer。无论如何,谢谢。
  • “machineName”有问题。也许它被关闭了?

标签: c#


【解决方案1】:

我认为你发送了错误的日志名称,这对我有用

EventLog myLog = new EventLog();
myLog.Log = "System";
myLog.Source = "User32";

var lastEntry = myLog;
EventLogEntry sw;
for (var i = myLog.Entries.Count -1 ; i >=0; i--)
{
    if (lastEntry.Entries[i].InstanceId == 1074)
        sw = lastEntry.Entries[i];
        break;
    }
}

【讨论】:

    【解决方案2】:

    您必须在您的计算机(或您要运行此应用程序的计算机)上运行“远程注册表”服务。我怀疑此服务设置为在您的机器上手动启动。您可能必须将此服务的设置更改为自动。

    如果此应用程序要在其他机器上运行,您可能需要在您的应用程序中添加一些逻辑来检查以确保该服务首先运行。如果不是,那么您需要通过您的应用程序启动它。

    注意:

    “远程注册表”服务使远程用户能够修改您计算机上的注册表设置。默认情况下,“远程注册表”服务的“启动类型”设置可能设置为“自动”或“手动”,这对单个用户(或)笔记本电脑用户来说是一个安全风险。 因此,要确保只有您计算机上的用户可以修改系统注册表,请禁用此“远程注册表”服务。

    【讨论】:

      猜你喜欢
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-18
      • 1970-01-01
      • 1970-01-01
      • 2017-08-20
      • 2011-12-07
      相关资源
      最近更新 更多