C#阻止系统休眠

阻止系统休眠

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);
        }
    }
}
时间: 2024-11-13 14:27:38

C#阻止系统休眠的相关文章

android计时与系统休眠

android计时与系统休眠 TIP:可能写的有点仓促,具体的可以联系我(*^__^*) 摘要:之前做项目的时候,修改一个倒计时秒表,本来以为比较简单,但是发现很多有趣的东西.我们项目里面用的是Timer计时的方法,但是,当系统休眠的时候,Timer也是处于休眠状态的.后来,我改进了几个方法,一个是handle+message的方法,还有一个是handle+runnable的方法,还有handle+Thread的方法.但是同样发现系统休眠的时候,这些同样是处于休眠状态的.后来上网查找了一下,这和

Linux系统休眠和设备中断处理

一.设备IRQ的suspend和resume 本小节主要解决这样一个问题:在系统休眠过程中,如何suspend设备中断(IRQ)?在从休眠中唤醒的过程中,如何resume设备IRQ? 一般而言,在系统suspend过程的后期,各个设备的IRQ (interrupt request line)会被disable掉.具体的时间点是在各个设备的late suspend阶段之后.代码如下(删除了部分无关代码): static int suspend_enter(suspend_state_t state

Windows 7下阻止系统关机

从Vista开始,想阻止系统关机就开始变麻烦了,不能只拦截WM_QUERYENDSESSION了,操作系统只给一个应用程序两秒钟的时间去保存自己的东西,两秒钟之后,不管做完了没有,Game Over!可是如果你正在刻录一张光盘呢?两秒钟是都不够的,所以Vista之后也给提供了一种方式阻止系统关机,就是ShutdownBlockReasonCreate函数,只要调用这个函数,第一个参数传递创建主窗口的句柄,第二个参数传递一个字符串,这个字符串说明阻止关机的原因,将会显示给用户.而且msdn提示说这

Android socket在系统休眠情况下调研

做了3年的IM应用,一直没有确认过socket在系统休眠的情况下会不会就收不到消息了,网上也搜过一些资料说android手机分为AP和BP两个部分,系统休眠的时候AP是休眠的,而BP是不休眠的,网络协议栈是运行在BP层的,所以当BP收到数据包的时候,系统会唤醒AP,但是AP运行的时间是很短的.虽然听起来很有道理的样子,但是没有亲手测试过,还是一块心病~~~,今天又想起这事,索性动手自己写代码测试看看结果. Server端code: public class TestServer { public

系统休眠消息PBT_APMSUSPEND

https://msdn.microsoft.com/en-us/library/windows/desktop/aa372721(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/windows/desktop/aa372708(v=vs.85).aspx 今天要查找如何获取系统从睡眠.休眠状态下唤醒的消息,写了个MFC对话框的程序,贴出部分核心代码: [cpp] view plain copy //唤醒消息捕获 LRESULT CS

socket在系统休眠情况下调研【转】

做了3年的IM应用,一直没有确认过socket在系统休眠的情况下会不会就收不到消息了,网上也搜过一些资料说android手机分为AP和BP两个部分,系统休眠的时候AP是休眠的,而BP是不休眠的,网络协议栈是运行在BP层的,所以当BP收到数据包的时候,系统会唤醒AP,但是AP运行的时间是很短的.虽然听起来很有道理的样子,但是没有亲手测试过,还是一块心病~~~,今天又想起这事,索性动手自己写代码测试看看结果. Server端code: public class TestServer { public

Android系统休眠对程序的影响以及处理

Android系统在用户长时间不操作时,为了节省资源,系统会选择休眠.在休眠过程中自定义的Timer.Handler.Thread.Service等都会暂停.而有时候这种机制会影响到我们程序的正常运行.那如何避免系统休眠对我们程序的影响呢? 以下已Service服务为例说明在系统休眠的状态下如何唤醒系统并执行我们自定义的Service服务. 一.单次Service服务的开启 1.方法:在需要执行Service服务时获取电源锁,并在执行完毕释放电源锁. 2.代码举例: public class W

系统休眠或浏览器不是当前活动状态,不执行js的解决思路

手机端原生开发,当前页面从系统中被唤起会有相应的事件触发.但webapp确无法获取. 基于浏览器自身规则,在系统休眠或着浏览器不处于当前活动状态是,js是不执行的. 那么如果想让页面能及时更新,解决思路有2个: 一:用一个定时程序,计算当前执行的时间,和上一次执行的时间差,如果大于5m,就看作当前页面背重新激活了. var oldtime = new Date().getTime(); function checkPageActive () { var newtime = new Date().

DELL inspiron·1420 装Win10系统休眠后再启动无法连Wifi解决办法

此页面禁止转载,违者必究!!! 解决办法: 打开电脑左下角Wifi和蓝牙的开关 将以下代码保存为“检查修复网络.bat文件”,双击运行,会出现一个管理员权限提示,点<是(Y)> 随便按一个键继续…… 会出现一行字“” 等待一会,出现“断网已重启,等待延时8秒...”后关闭窗口并打开系统右下角WLAN的开关==> 即可连接wifi @echo off pushd "%~dp0" >nul 2>&1 "%SYSTEMROOT%\system3