[转自konan:http://skschema.blog.163.com/blog/static/64541548200812402325608/]
今天梵耶问的这个问题,google一下有人给出调整注册表的方法,但解释不太完整。我测试后再解释一下,以本人2003se系统为例:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\ControlPanel\Backlight]"BatteryTimeout"=dword:0000001e ----背光持续时间换成十进制,如果为0则一直保持背光"BatteryTimeoutUnchecked"=dword:00000000 ----仅在上一项为0时记录上次选项值"Brightness"=dword:00000008 ----背光级别"DefaultACBrightness"=dword:0000000a ----默认电源背光级别"DefaultBrightness"=dword:00000008 ----默认背光级别
参考上面的解释,我们只要修改"BatteryTimeout"为0就可以了。真的只是这样吗?
改过注册表的朋友可能发现,这样做没有什么效果,或者修改后不知道什么时候才生效的。我用MortScript写了下面的脚本来测试。regwritedword("HKCU","ControlPanel\Backlight","BatteryTimeout",30)sleep(40000)message("ok1")regwritedword("HKCU","ControlPanel\Backlight","BatteryTimeout",0)sleep(40000)message("ok2")结果脚本写完注册表后在等待的40秒中,背光持续时间仍然是原来的时间长度,但弹出message后,设置才生效。注册表本身仅仅是记录系统设置,但系统并不是随时监视注册表的每个键值的变化,因此需要message来强迫系统生效。
基于这个想法,我又做一另一个试验,使用注册表来调节电池模式的背光级别。
regwritedword("HKCU","ControlPanel\Backlight","Brightness",2)sleep(5000)message("ok")写入注册表后,仍然是没有什么反应,直到过了5秒确认过message后背光级别才发生变化。
总结:
1.保持背光的方法,修改注册表"BatteryTimeout"=dword:0000001e
2.使注册表生效的方法,message(相信还有其它方法可以实现,今天太晚了改天再弄明白。)