windows - SetThreadExecutionState 防止手动休眠

标签 windows winapi

在 Windows 7 上,我看到使用参数 ES_CONTINUOUS | 调用 SetThreadExecutionState ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED 阻止用户手动让系统进入休眠状态。

打开“开始”菜单并选择“ sleep ”后,显示屏关闭,但我的应用程序继续处理。风扇继续全速运行这一事实证明了这一点,并且在唤醒计算机时,我可以看到 sleep 发生时正在执行的操作已经取得进展。

如何让用户在 SetThreadExecutionState 生效时手动让他们的计算机进入休眠状态?

最佳答案

包含 ES_AWAYMODE_REQUIRED 选项会导致此问题。引用自 MSDN 文章:

The ES_AWAYMODE_REQUIRED value should be used only when absolutely necessary by media applications that require the system to perform background tasks such as recording television content or streaming media to other devices while the system appears to be sleeping. Applications that do not require critical background processing or that run on portable computers should not enable away mode because it prevents the system from conserving power by entering true sleep.

关于windows - SetThreadExecutionState 防止手动休眠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21487960/

相关文章:

Windows批处理结合 CoffeeScript ,复制和丑化

c - 如何获取 WS_CHILD 中 WM_KEYDOWN 的 virtkey 值?

python - 如何以高质量录制屏幕

c++ - Win32 GUI 程序中的布局

c++ - SSLSocket setsockopt 返回 10042 和 WSAIoctl 10045

c++ - 为什么 Windows 10 中 kernel32.dll 上的 GetFileVersionInfo 返回版本 6.2?

c# - 问:Interop.Excel 打开两个文件实例

java - Apache Thrift Python-Java 'Connection Refused'

java - 由于我是初学者,Windows 10 上的批量主机到 Ip 程序 - 脚本方式

windows - 了解 MsgWaitForMultipleObjects