Delphi WinAPI SetThreadExecutionState - 防止系統在應用程式執行時進入睡眠狀態或關閉顯示器。
阿新 • • 發佈:2020-11-03
Delphi WinAPI SetThreadExecutionState - 防止系統在應用程式執行時進入睡眠狀態或關閉顯示器。
描述:使應用程式能夠通知系統它正在使用,從而防止系統在應用程式執行時進入睡眠狀態或關閉顯示器。
原型:
EXECUTION_STATE SetThreadExecutionState(
EXECUTION_STATE esFlags
);
esFlags 引數:
- ES_AWAYMODE_REQUIRED 0x00000040
- 啟用離開模式。此值必須使用ES_CONTINUOUS指定。
- 離開模式只能由媒體錄製和媒體分發應用程式使用,這些應用程式必須在桌面計算機上執行關鍵的後臺處理,而計算機似乎處於休眠狀態。
- ES_CONTINUOUS 0x80000000
- 通知系統正在設定的狀態應保持有效,直到下一個使用ES_CONTINUOUS和另一個狀態標誌的呼叫被清除。
- ES_DISPLAY_REQUIRED 0x00000002
- 通過重置顯示器空閒計時器強制顯示器開啟。 Forces the display to be on by resetting the display idle timer.
- ES_SYSTEM_REQUIRED 0x00000001
- 通過重置系統空閒計時器強制系統處於工作狀態。Forces the system to be in the working state by resetting the system idle timer.
- ES_USER_PRESENT 0x00000004
- 不支援此值。如果ES_USER_PRESENT與其他esFlags值組合,則呼叫將失敗,並且不會設定任何指定的狀態。
返回值:
- 如果函式成功,則返回值為前一個執行緒執行狀態。
- 如果函式失敗,返回值為空。
C++ 使用示例:
// Television recording is beginning. Enable away mode and prevent // the sleep idle time-out. // SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED); // // Wait until recording is complete... // // // Clear EXECUTION_STATE flags to disable away mode and allow the system to idle to sleep normally. // SetThreadExecutionState(ES_CONTINUOUS);
Delphi 使用示例:
function SetThreadExecutionState(esFlags:EXECUTION_STATE ):DWORD;stdcall;external 'kernel32.dll'; //引用API函式
const
ES_SYSTEM_REQUIRED = $00000001;
ES_DISPLAY_REQUIRED =$00000002;
ES_CONTINUOUS = $80000000;
begin
SetThreadExecutionState(ES_SYSTEM_REQUIRED or ES_DISPLAY_REQUIRED or ES_CONTINUOUS); //啟動控制
SetThreadExecutionState(ES_CONTINUOUS); //恢復
end;
建立時間:2020.11.03 更新時間: