Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows快速启动-如何确定上次启动/重新启动的时间_C#_Windows - Fatal编程技术网

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

C# Windows快速启动-如何确定上次启动/重新启动的时间,c#,windows,C#,Windows,在.Net中是否有某种方法可用于确定Windows PC上次关闭的时间,即在PC上启用“快速启动”时。如果最终用户选择关闭而不是重新启动,则目前为止我在StackOverflow上找到的任何解决方案均未提供该信息 启用“快速启动”功能的Windows PC进入睡眠模式或关机时,“启动时间”和“LastBootUpTime”不会更新 简而言之-是否有办法确定用户上次“关闭”计算机的时间?您可以筛选系统事件日志 获取所有日志 foreach (var log in EventLog.GetEvent

在.Net中是否有某种方法可用于确定Windows PC上次关闭的时间,即在PC上启用“快速启动”时。如果最终用户选择关闭而不是重新启动,则目前为止我在StackOverflow上找到的任何解决方案均未提供该信息

启用“快速启动”功能的Windows PC进入睡眠模式或关机时,“启动时间”和“LastBootUpTime”不会更新


简而言之-是否有办法确定用户上次“关闭”计算机的时间?

您可以筛选系统事件日志

获取所有日志

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"