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

Windows11调用SetThreadExecutionState(ES_CONTINUOUS)无法恢复自动睡眠怎么办?

恢复Windows 11自动睡眠计时的正确方法

你之前调用SetThreadExecutionState(ES_CONTINUOUS)无法恢复自动睡眠的核心原因是:ES_CONTINUOUS仅用于标记状态需持续生效,单独传递它并不会清除之前设置的ES_SYSTEM_REQUIRED标记——这个标记会持续阻止系统进入睡眠流程。

正确的恢复操作如下:

  • 任务结束后,需调用SetThreadExecutionState(0)来重置系统的执行状态标记。部分场景下可先调用SetThreadExecutionState(ES_CONTINUOUS)再调用SetThreadExecutionState(0),确保之前的持续阻止状态被彻底清除。
  • 若你多次调用过SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED),恢复调用的次数需要与之前的阻止调用次数匹配,才能完全清除累积的唤醒请求。

同时可排查以下干扰因素:

  • 用管理员权限打开命令提示符,执行powercfg /requests命令,查看是否有其他进程持有系统唤醒请求,这类进程会持续阻止睡眠。
  • 检查电源设置中的睡眠选项是否被修改,比如是否误设为“从不”睡眠,或者“快速启动”功能是否开启(部分场景下快速启动会影响睡眠恢复逻辑)。

C++代码示例:

// 任务运行时阻止系统睡眠
SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED);

// 任务结束后恢复自动睡眠
SetThreadExecutionState(ES_CONTINUOUS);
SetThreadExecutionState(0);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 12:47:39