You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Win10系统如何获取准确的上次关机/启动时间?现有方案结果不符

问题根本原因

Windows 10及以上版本默认启用「快速启动」功能,用户日常点击的关机按钮触发的不是完整关机流程,属于深度休眠(S4)状态,不会更新你现有方案依赖的三个记录点:系统运行时长计数器不会重置、注册表ShutdownTime字段不会更新、也不会生成常规关机对应的事件日志条目。只有重启操作、关闭快速启动后的关机操作才会触发上述记录更新,这就是你当前仅能查询到昨日重启时间的核心原因。

解决方案
  • 方案1:调整事件日志查询逻辑,覆盖全场景开关机记录
    你原有代码仅匹配了完整开关机对应的事件ID,需要补充快速启动场景的事件过滤规则:
    • 完整关机事件:来源EventLog的ID 6006、来源User32的ID 1074
    • 快速启动关机事件(普通关机):来源Kernel-Power的ID 42
    • 完整启动事件:来源EventLog的ID 6005
    • 快速启动唤醒事件:来源Kernel-Power的ID 107
      调整过滤逻辑后即可查询到所有开关机记录,注意读取系统事件日志的代码需要管理员权限才能正常获取全部条目。
  • 方案2:关闭快速启动功能,兼容原有代码
    不需要快速启动的加速效果时,可直接关闭该功能,你现有的三段代码即可正常返回所有开关机时间:
    1. 打开控制面板→电源选项→选择电源按钮的功能
    2. 点击「更改当前不可用的设置」
    3. 取消勾选「启用快速启动(推荐)」,保存修改即可生效
  • 额外注意事项:如果你的程序运行在32位模式下,读取64位系统的注册表会被自动重定向,导致拿到旧的ShutdownTime值,可将项目生成目标改为x64,或调用Win32 API关闭注册表重定向后再读取。

内容的提问来源于stack exchange,提问作者Admiral Land

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:27:03