作者:chxy85
原帖地址:http://www.devdiv.net/thread-9668-1-16.html
小弟初次分享,不对之处望高手赐教。
首先得分清电源和背光是两码事,WM闲置一段时间后会调低背光(但未完全关闭),再继续闲置则会关闭电源,这时背光全灭且功耗降至最低。
关闭电源(调用系统键实现的,模拟器慎用,用后会发现模拟器不见了)
keybd_event (VK_OFF, 0, KEYEVENTF_SILENT, 0);
keybd_event (VK_OFF, 0, KEYEVENTF_SILENT │ KEYEVENTF_KEYUP, 0);
防止关闭电源(下面这个方法就是告诉系统,用户仍在使用,系统的定时器会清零,重新计时,等待到达时间后关闭,因此下面的方法得用定时器调用,在每次关闭电源前用一次)
SystemIdleTimerReset()
防止关闭背光(只在电源关闭前有效,电源关闭时,即使使用了防止关闭背光的方法,背光也会关闭)
SetPowerRequirement(//改变电源状态
LPCWSTR psState,//在我理解就是设备名称L"BKL1:"表示背光
DWORD StateFlags,//电源的四种状态,因为是由OEM定制的,所以一般都用D0最大功耗状态
DWORD Options//用POWER_NAME表示我们指定的设备名被维护
0,//用0
0//用0
)
ReleasePowerRequirement (HANDLE hPowerReq); //用此方法释放上面的电源管理