我使用Qt和Visual Studio 2015在C++中开发应用程序。如何防止Windows在我的C++应用程序运行时进入睡眠状态?
我想知道如何防止应用程序在我的应用程序运行时进入睡眠状态。我的应用程序应该始终在后台运行,并响应用户的声音指示。
当我的应用程序运行时,有没有什么可以防止Windows进入睡眠状态?
我使用Qt和Visual Studio 2015在C++中开发应用程序。如何防止Windows在我的C++应用程序运行时进入睡眠状态?
我想知道如何防止应用程序在我的应用程序运行时进入睡眠状态。我的应用程序应该始终在后台运行,并响应用户的声音指示。
当我的应用程序运行时,有没有什么可以防止Windows进入睡眠状态?
SetThreadExecutionState功能
允许应用程序通知系统,它是在使用中,从而防止系统进入睡眠或应用程序正在运行时,关闭显示器。
了解更多关于这里的API:SetThreadExecutionState
例子:
// The following sets the appropriate flags to prevent system to go into sleep mode.
SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED);
// This clears the flags and allows the system to sleep normally.
SetThreadExecutionState(ES_CONTINUOUS);
API SetThreadExecutionState由马丁·邦纳和ddacot推荐文档说明它非常清楚。
根据你的描述,你应该把下面的函数放在main()中。
SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED);
根据该文件,
ES_CONTINUOUS通知的状态设置应继续有效,直到使用ES_CONTINUOUS和其他国家标志之一被清除下一个呼叫系统。
ES_SYSTEM_REQUIRED通过重置系统空闲计时器强制系统处于工作状态。
ES_AWAYMODE_REQUIRED强制媒体应用程序在后台运行,以便您可以通过语音呼叫应用程序。
我在问这个问题之前看到了这个。我没有找到我想要的东西。 – ProEns08
它以什么方式回答你的问题? –
我不知道在哪里把代码中的函数'SetThreadExecutionState'调用。在main()函数的开头还是在无限处理循环中? – ProEns08