【发布时间】: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#