我的c ++应用程序运行时如何防止窗口进入睡眠状态?

时间:2016-01-17 08:15:03

标签: c++ windows visual-studio qt

我使用Qt和visual studio 2015开发了一个c ++应用程序。

我想知道在应用程序运行时如何防止应用程序表单进入休眠状态。我的应用程序应始终在后台运行并响应用户通过语音命令它。

当应用程序运行时,有没有阻止窗口进入睡眠状态?

2 个答案:

答案 0 :(得分:8)

SetThreadExecutionState 功能

允许应用程序通知系统它正在使用中,从而防止系统在应用程序运行时进入睡眠状态或关闭显示屏。

在此处详细了解API:SetThreadExecutionState

示例:

{{1}}

答案 1 :(得分:5)

Martin Bonner和ddacot推荐的API SetThreadExecutionState文件非常清楚地说明了这一点。

根据您的描述,您应该将以下函数放在main()。

SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED);

根据该文件,

  • ES_CONTINUOUS通知系统正在设置的状态应该保持有效,直到下一次使用ES_CONTINUOUS并且其中一个状态标志被清除为止。

  • ES_SYSTEM_REQUIRED通过重置系统空闲计时器强制系统处于工作状态。

  • ES_AWAYMODE_REQUIRED强制媒体应用程序在后台运行,以便您可以通过语音呼叫应用程序。