您的位置:首页 > 编程语言 > C#

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了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: