C#实现阻止关闭显示器和系统待机

通过SetThreadExecutionState API实现阻止系统休眠。


<span style="font-size:14px;">[DllImport("kernel32.dll")]
public static extern uint SetThreadExecutionState(ExecutionFlag flag);

public enum ExecutionFlag : uint
{
	System = 0x00000001,
        Display = 0x00000002,
        Continus = 0x80000000
}</span>

  • 只使用Continus参数时,则是回复系统休眠策略。
  • 不使用Continus参数时,实现阻止系统休眠或显示器关闭一次。
  • 组合使用Continus参数时,实现阻止系统休眠或显示器关闭至线程终止。
<span style="font-size:14px;">private void PreventSleep()
{
      	SetThreadExecutionState(ExecutionFlag.System |
       	ExecutionFlag.Display | ExecutionFlag.Continus);
}

 private void RestoreSleep()
 {
        SetThreadExecutionState(ExecutionFlag.Continus);
 }</span>


 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值