C# Windows快速启动-如何确定上次启动/重新启动的时间
在.Net中是否有某种方法可用于确定Windows PC上次关闭的时间,即在PC上启用“快速启动”时。如果最终用户选择关闭而不是重新启动,则目前为止我在StackOverflow上找到的任何解决方案均未提供该信息 启用“快速启动”功能的Windows PC进入睡眠模式或关机时,“启动时间”和“LastBootUpTime”不会更新C# Windows快速启动-如何确定上次启动/重新启动的时间,c#,windows,C#,Windows,在.Net中是否有某种方法可用于确定Windows PC上次关闭的时间,即在PC上启用“快速启动”时。如果最终用户选择关闭而不是重新启动,则目前为止我在StackOverflow上找到的任何解决方案均未提供该信息 启用“快速启动”功能的Windows PC进入睡眠模式或关机时,“启动时间”和“LastBootUpTime”不会更新 简而言之-是否有办法确定用户上次“关闭”计算机的时间?您可以筛选系统事件日志 获取所有日志 foreach (var log in EventLog.GetEvent
简而言之-是否有办法确定用户上次“关闭”计算机的时间?您可以筛选系统事件日志 获取所有日志
foreach (var log in EventLog.GetEventLogs())
if(log.Log == "System")
foreach (EventLogEntry entry in log.Entries)
要获取引导日志,请使用6009筛选事件ID(由提及)
要获取唤醒日志,请使用1筛选事件ID,并使用“Microsoft Windows Power疑难解答”筛选源
Reboot=Shutdown+Boot,根本没有重新启动方法,您可以检查关机时间和启动时间之间的差异以检测重新启动事件。“如果最终用户选择关机或睡眠而不是重新启动,那么到目前为止我在StackOverflow上找到的任何解决方案都不会向我提供该信息”——确切地说,这意味着什么?睡眠不是引导,因此用户操作自然不会影响上次引导时间。但是关机肯定会导致开机,下一次开机时(也就是说,你最早可以检查时间)。请修正你的问题,让它显示你尝试了什么,解释了尝试做了什么,以及为什么那不是你想要的。@NatPongjardenlarp。我想你说的是“上次开机时间”。启用“快速启动”后,“LastBootUpTime”是计算机最后一次重新启动。选择“关机”时,该值未更改。@shingo正确,但我仍想知道计算机上次启动的时间。展开-计算机上一次启动是什么时候。@大卫:请编辑您的帖子以提供任何必要的澄清。这里的评论是供其他用户征求改进意见,而不是供您提供这些改进意见。还要注意(正如其他人已经指出的):进入休眠状态的计算机不需要重新启动操作系统,因此您现在获得的信息是准确的。如果你想跟踪电源状态的变化,那就不同了。您的问题不清楚您想要跟踪什么或为什么,但power API和/或WMI可能会满足您的需求。最坏的情况是,您可以直接检查事件日志。
(entry.InstanceId & 0x3FFFFFFF) == 6009
(entry.InstanceId & 0x3FFFFFFF) == 1 && entry.Source == "Microsoft-Windows-Power-Troubleshooter"