阻止系統休眠
using System.Runtime.InteropServices;
static class WinSleepCtr
{
//定義API函數
[DllImport("kernel32.dll")]
static extern uint SetThreadExecutionState(uint esFlags);
const uint ES_SYSTEM_REQUIRED = 0x00000001;
const uint ES_DISPLAY_REQUIRED = 0x00000002;
const uint ES_CONTINUOUS = 0x80000000;
public static void SleepCtr(bool sleepOrNot)
{
if (sleepOrNot)
{
//阻止休眠時調用
SetThreadExecutionState(ES_CONTINUOUS | ES_DISPLAY_REQUIRED | ES_SYSTEM_REQUIRED);
}
else
{
//恢復休眠時調用
SetThreadExecutionState(ES_CONTINUOUS);
}
}
}
