c# - Windows 快速启动 - 如何确定上次启动/重新启动发生的时间
问题描述
在PC上启用“快速启动”时,.Net中是否有一些方法可以用来确定Windows PC上次关闭的时间。如果最终用户选择关闭而不是重新启动,那么到目前为止我在 StackOverflow 上找到的解决方案都没有给我该信息。
当启用“快速启动”的 Windows PC 进入睡眠模式或关机时,不会更新“正常运行时间”和“上次启动时间”。
简而言之 - 有没有办法确定用户上次“关闭”计算机的时间?
解决方案
您可以过滤系统事件日志
获取所有日志
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”过滤事件 ID
(entry.InstanceId & 0x3FFFFFFF) == 1 && entry.Source == "Microsoft-Windows-Power-Troubleshooter"
推荐阅读
- go - 交换并发函数
- ios - 产品 ID 未显示在 Firebase 扩展中
- python - 如何在 Dask Array 中一次索引多个维度?
- java - LocalDate 验证问题
- vue.js - 通过插槽 Vue 3 访问 Vue 组件
- javascript - 如何在 NextJS 应用程序中使用 SWR 呈现来自 GraphQL 的 Apollo Server 实例的数据?
- ios - React Native Detox - 本地和 CI 有不同的结果
- c# - 打字稿 下载 PDF 文件
- .net - 使用 GitHub Actions 在 .net 应用程序中填充特定于环境的变量
- python - Errno 22 文件路径的参数无效