![](/img/trans.png)
[英]How can I Execute a Function from service program when Windows Fast Startup
[英]Windows Fast Startup - How to determine when the last boot/reboot occured
在 PC 上启用“快速启动”时,.Net 中是否有一些方法可以用来确定 Windows PC 上次关机的时间。 如果最终用户选择 Shutdown 而不是 Restart,那么到目前为止我在 StackOverflow 上找到的解决方案都没有给我这些信息。
当启用了“快速启动”的 Windows PC 进入睡眠模式或关机时,“运行时间”和“LastBootUpTime”不会更新。
简而言之 - 有没有办法确定用户上次“关闭”计算机的时间?
您可以过滤系统事件日志
获取所有日志
foreach (var log in EventLog.GetEventLogs())
if(log.Log == "System")
foreach (EventLogEntry entry in log.Entries)
要获取启动日志,请使用 6009 过滤事件 ID( 此答案中提到)
(entry.InstanceId & 0x3FFFFFFF) == 6009
要获取唤醒日志,请使用 1 过滤事件 ID,使用“Microsoft-Windows-Power-Troubleshooter”过滤源
(entry.InstanceId & 0x3FFFFFFF) == 1 && entry.Source == "Microsoft-Windows-Power-Troubleshooter"
假设您的意思是要查找启用快速启动时计算机上次启动的时间?
从 .NET 查询事件日志。 还没有这样做,但看起来你使用 System.Diagnostics.Eventing.Reader 命名空间 [来自谷歌搜索:-)]
查找事件 ID 27(引导事件)并检查引导类型:
0x0- 从完全关闭的冷启动 0x1- 混合启动(快速启动) 0x2- 从休眠状态恢复
即如果它是从快速启动启动,那么您需要查找事件 ID 27 + 启动类型 0x1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.