Windows快速启动-如何确定上次启动/重新启动的时间

时间:2019-06-19 02:53:18

标签: c# windows

.Net中是否可以使用某些方法来确定在PC上启用了“快速启动”后,Windows PC的最后关闭时间。如果最终用户选择“关机”而不是“重新启动”,那么到目前为止,我在StackOverflow上找到的所有解决方案都无法提供该信息。

当启用“快速启动”的Windows PC进入睡眠模式或关机时,“ Up Time”和“ LastBootUpTime”不会更新。

简而言之-有什么方法可以确定用户最后一次“关闭”计算机的时间?

1 个答案:

答案 0 :(得分:1)

您可以过滤系统事件日志

获取所有日志

foreach (var log in EventLog.GetEventLogs())
    if(log.Log == "System")
        foreach (EventLogEntry entry in log.Entries)

要获取启动日志,请用6009(由this answer提及)过滤事件ID

(entry.InstanceId & 0x3FFFFFFF) == 6009

要获取唤醒日志,请使用1过滤事件ID,并使用“ Microsoft-Windows-Power-Troubleshooter”过滤源

(entry.InstanceId & 0x3FFFFFFF) == 1 && entry.Source == "Microsoft-Windows-Power-Troubleshooter"