我使用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