屏幕未按设定休眠是因程序调用setthreadexecutionstate阻止,用powercfg /requests可快速定位display区域的阻断进程或驱动;若为空则需用powercfg -energy -trace分析隐性干扰,并结合任务管理器或安全模式进一步排查。

电脑屏幕休眠时间设为10分钟,结果一小时过去屏幕还亮着,不是系统坏了,而是某个程序正悄悄按住“不许睡”的按钮——它调用了Windows的SetThreadExecutionState API,让系统误以为用户仍在操作。
用powercfg /requests直接揪出拦路虎
这一步最快最准,5秒内就能看到谁在捣鬼。
以管理员身份运行 Windows 终端(PowerShell 或命令提示符)→ 输入 powercfg /requests → 按回车执行。
重点看输出中【DISPLAY】区域下的非空条目。如果出现类似 PROCESS: [APPLICATION] WeChat.exe 或 SYSTEM: [DRIVER] Realtek Audio Driver,就说明该进程或驱动正在主动阻止显示器关闭。
注意:若【DISPLAY】区域为空,但【SYSTEM】或【AWAYMODE】有内容,说明问题不在屏幕关闭环节,而是整个系统被锁住无法进入睡眠——此时需继续排查休眠阻断源,而非仅盯屏幕。
用powercfg -energy -trace捕获隐性干扰
有些程序不直接发“禁止休眠”请求,而是高频重置系统空闲计时器,比如远程控制软件、直播推流工具、甚至某些杀毒扫描模块。它们不会出现在/requests里,但会让屏幕始终“假装有人在用”。
管理员终端中输入:powercfg -energy -trace → 回车后静置60秒,期间绝对不要碰键盘鼠标,否则干扰采样结果。
等待提示“跟踪完成”后,在用户目录下找到energy-trace.etl文件(如C:\Users\用户名\energy-trace.etl)。
右键开始菜单 → 选择“事件查看器” → 操作 → “打开保存的日志” → 定位并打开该.etl文件 → 右键日志 → “筛选当前日志” → 设置事件来源为Kernel-Power、事件ID为63 → 点击确定。
筛选后出现大量记录,逐条查看“详细信息”标签页里的描述字段,重点关注含“update the system timer resolution”或“thread execution state”的行,其关联进程名即为嫌疑对象。
任务管理器快速验证与终止
方法一:Ctrl+Shift+Esc 打开任务管理器 → 切换到“后台进程”标签页 → 按CPU或后台活动排序 → 优先结束名称可疑的进程,如TeamViewer、AnyDesk、OBS、PotPlayer、迅雷、网易云音乐等。
方法二:在“启动”标签页中禁用高风险启动项 → 右键任一项目 → 选择“禁用” → 重启后观察休眠是否恢复生效。
方法三:若怀疑是驱动级干扰,可临时进入安全模式(开机时按住Shift点重启 → 疑难解答 → 高级选项 → 启动设置 → 重启 → 按F4)→ 在安全模式下测试休眠是否正常。若正常,说明第三方驱动或服务是元凶。











