C#程序中防止PPC自动进入待机状态
2010-05-11 15:01
423 查看
[DllImport("CoreDll.dll")]
private static extern void SystemIdleTimerReset();
private static int nDisableSleepCalls = 0;
private static System.Threading.Timer preventSleepTimer = null;
private static void PokeDeviceToKeepAwake(object extra)
{
try
{
SystemIdleTimerReset();
}
catch (Exception e)
{
// TODO
}
}
/**//// <summary>
/// 禁止设备自动关闭电源
/// </summary>
public static void DisableDeviceSleep()
{
nDisableSleepCalls++;
if (nDisableSleepCalls == 1)
{
//Debug.Assert(preventSleepTimer == null);
// 没隔30秒刷新一次计时器
preventSleepTimer = new System.Threading.Timer(new System.Threading.TimerCallback
(PokeDeviceToKeepAwake),
null, 0, 30 * 1000);
}
}
/**//// <summary>
/// 允许设备自动关闭电源
/// </summary>
public static void EnableDeviceSleep()
{
nDisableSleepCalls--;
if (nDisableSleepCalls == 0)
{
//Debug.Assert(preventSleepTimer != null);
if (preventSleepTimer != null)
{
preventSleepTimer.Dispose();
preventSleepTimer = null;
}
}
}
在定时开始时调用DisableDeviceSleep方法就OK了。
private static extern void SystemIdleTimerReset();
private static int nDisableSleepCalls = 0;
private static System.Threading.Timer preventSleepTimer = null;
private static void PokeDeviceToKeepAwake(object extra)
{
try
{
SystemIdleTimerReset();
}
catch (Exception e)
{
// TODO
}
}
/**//// <summary>
/// 禁止设备自动关闭电源
/// </summary>
public static void DisableDeviceSleep()
{
nDisableSleepCalls++;
if (nDisableSleepCalls == 1)
{
//Debug.Assert(preventSleepTimer == null);
// 没隔30秒刷新一次计时器
preventSleepTimer = new System.Threading.Timer(new System.Threading.TimerCallback
(PokeDeviceToKeepAwake),
null, 0, 30 * 1000);
}
}
/**//// <summary>
/// 允许设备自动关闭电源
/// </summary>
public static void EnableDeviceSleep()
{
nDisableSleepCalls--;
if (nDisableSleepCalls == 0)
{
//Debug.Assert(preventSleepTimer != null);
if (preventSleepTimer != null)
{
preventSleepTimer.Dispose();
preventSleepTimer = null;
}
}
}
在定时开始时调用DisableDeviceSleep方法就OK了。
相关文章推荐
- 揭开.NET消息循环的神秘面纱(GetMessage()无法取得任何消息,就会进入Idle(空闲)状态,进入睡眠状态(而不是Busy Waiting)。当消息队列不再为空的时候,程序会自动醒过来)
- Qt实现屏保功能,鼠标一定时间无响应程序进入待机状态
- 防止程序进入休眠状态
- Android开发运行程序自动进入调试状态<原创>
- 如何防止iOS程序在运行中进入待机模式
- 一段防止PPC进入睡眠状态的VS源代码
- Qt实现屏保功能,鼠标一定时间无响应程序进入待机状态
- atheros ar9285 wireless network Adaper设备的驱动器正防止机器进入待机状态
- Qt实现屏保功能,鼠标一定时间无响应程序进入待机状态
- 防止iOS程序进入休眠状态
- 一行代码让App运行时iPhone不会进入锁屏待机状态
- C#防止程序多开机制
- Android开发中,如何防止刚进入activity,EditText处于编辑状态,弹出键盘
- C#Winform程序如何发布并自动升级(图解)
- C# 关于开机自动运行程序方式之一
- C#实现通过程序自动抓取远程Web网页信息
- C#语言:MDI窗体程序中防止子窗体被多次实例化
- 如何在C#中用程序执行指定的SQL脚本文件,实现自动安装创建数据库.txt
- 编写高质量代码改善C#程序的157个建议——建议81:使用Parallel简化同步状态下Task的使用
- VS2013发布C#自动更新程序