我使用Qt和Visual Studio 2015开发了一个C++应用程序。
我想知道如何在我的应用程序运行时防止计算机进入睡眠状态。我的应用程序应该始终在后台运行,并通过语音响应用户的命令。
是否有方法可以在我的应用程序运行时防止Windows进入睡眠状态?
我使用Qt和Visual Studio 2015开发了一个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);
SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED);
ES_CONTINUOUS指示系统设置的状态应保持有效,直到下一次使用ES_CONTINUOUS和其他状态标志之一的调用被清除。
ES_SYSTEM_REQUIRED通过重置系统空闲计时器强制使系统处于工作状态。
ES_AWAYMODE_REQUIRED强制媒体应用程序在后台运行,以便您可以通过语音调用您的应用程序。
SetThreadExecutionState
的调用放在哪里。是在main()函数的开头还是在无限处理循环中? - ProEns08