.Net中是否可以使用某些方法来确定在PC上启用了“快速启动”后,Windows PC的最后关闭时间。如果最终用户选择“关机”而不是“重新启动”,那么到目前为止,我在StackOverflow上找到的所有解决方案都无法提供该信息。
当启用“快速启动”的Windows PC进入睡眠模式或关机时,“ Up Time”和“ LastBootUpTime”不会更新。
简而言之-有什么方法可以确定用户最后一次“关闭”计算机的时间?
答案 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"