使用C#,如何防止Windows操作系统进入睡眠模式?
我知道可以关闭睡眠模式,这是我现在做的。这个问题是关于防止操作系统在程序长时间运行时进入睡眠模式。之后,再次启用进入睡眠模式。
使用C#,如何防止Windows操作系统进入睡眠模式?
我知道可以关闭睡眠模式,这是我现在做的。这个问题是关于防止操作系统在程序长时间运行时进入睡眠模式。之后,再次启用进入睡眠模式。
SetThreadExecutionState
以告知系统特定需求,这些需求会影响系统如何决定睡眠。如果您需要显示器无论是否有用户交互都保持可见,则应将 ES_DISPLAY_REQUIRED
参数发送到 SetThreadExecutionState
。public enum EXECUTION_STATE : uint
{
ES_AWAYMODE_REQUIRED = 0x00000040,
ES_CONTINUOUS = 0x80000000,
ES_DISPLAY_REQUIRED = 0x00000002,
}
internal class NativeMethods
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE esFlags);
}
//...
NativeMethods.SetThreadExecutionState(EXECUTION_STATE.ES_DISPLAY_REQUIRED);
SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED);
进行设置,并使用SetThreadExecutionState(ES_CONTINUOUS);
恢复正常。以上要添加的枚举是ES_SYSTEM_REQUIRED = 0x00000001
。 - Jay Croghan