我使用的是 Windows 8.1、Visual Studio 2013,并且我有一个运行超过 15 分钟的 C++ 项目。但问题是,当我仍在调试时,Windows 会进入睡眠状态。
我知道这是因为在运行程序(调试)时超过了睡眠等待时间,我可以通过增加睡眠等待时间或在 Windows 控制面板电源设置中将设置设置为“从不”睡眠来轻松停止这种情况。
但我想要一个基于编程或 Visual Studio 的解决方案。我希望我的计算机在程序执行(调试)过程中不要休眠。
我使用的是 Windows 8.1、Visual Studio 2013,并且我有一个运行超过 15 分钟的 C++ 项目。但问题是,当我仍在调试时,Windows 会进入睡眠状态。
我知道这是因为在运行程序(调试)时超过了睡眠等待时间,我可以通过增加睡眠等待时间或在 Windows 控制面板电源设置中将设置设置为“从不”睡眠来轻松停止这种情况。
但我想要一个基于编程或 Visual Studio 的解决方案。我希望我的计算机在程序执行(调试)过程中不要休眠。
windows中有SetThreadExecutionState函数
在程序入口点更改设置,在调试会话结束时恢复设置。
举这个例子......
#include <cstdlib>
//include windows.h
using namespace std;
void KeepMonitorActive() {
// Enable away mode and prevent the sleep idle time-out.
SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED);
}
void RestoreMonitorSettings() {
// Clear EXECUTION_STATE flags to disable away mode and allow the system to idle to sleep normally.
SetThreadExecutionState(ES_CONTINUOUS);
}
int main()
{
//Add these 2 lines at the entry point in your program
KeepMonitorActive();
atexit(RestoreMonitorSettings);
//...
}