slangmgh 发表于 2013-12-26 12:22

【原创】编了一个小程序,现在你可以不用安装PowerManager来设置电池阀值了

今天看了一下Lenovo电池管理的软件,发现可以利用其中的一些API来简单的设置电池阈值。

图形版在这里:http://www.ibmnb.com/thread-1427707-1-1.html

附件中有两个可执行程序, tpbgc32.exe 和 tpbgc64.exe 分别用于32位和64位系统。
先说用法:
1. 显示当前的阀值, 不带参数执行
    tpbgc32.exe

2. 设置充电阈值, 第一个参数是起始充电阈值,第二个参数是停止充电阈值
    tpbgc32.exe 55 80

再说一下原理:
1. PowerManager需要一个驱动来控制充电阈值,这个驱动早期名字为tppwrif.sys,64位出现后分成两个,分别是TPPWR32V.SYS和TPPWR64V.SYS,分别对应32位和64为操作系统。
2. PowerManager还提供了一个DLL来和上面的驱动通信,提供简单的接口供其他程序调用。这个DLL早期名字为PWRMGRIF.DLL,后来名字为PWMIF32V.DLL和PWMIF64V.DLL。
3. 我所做的就是动态安装上面的驱动,然后调用DLL中相应的API来获取和设置充电阈值。

附件中提供了两个版本的PowerManager的驱动和DLL,分别是版本1.48和6.54的。64位系统没有测试过,win7和win8也没有测试过,不过理论上应该是通用的。

另外现在只支持第一个电池的阀值控制,我没有双电池的机器,无法测试。如果那个需要的话,可以做一个控制第二个电池的。

这个程序执行是不需要安装PowerManager的。如果有新的PowerManger版本出来,也可以将新版中的相应文件取出来,放到tpbg32.exe或者tpbg64.exe文件所在的目录中就可以了。

注:
   用该程序设置的阈值,用PowerManger不一定能够正确的显示,因为PowerManger有些信息是从注册表中获取的。但是可以自己测试一下该阈值是否起作用了。

win8 以上系统,注意用管理员权限运行。

[ Edited byslangmgh on 2013-12-30 11:53 ]

IBM社区 发表于 2013-12-26 12:23

楼主牛人

沙漠里的水 发表于 2013-12-26 12:29

不知道是不是好用呢?过来试一下!

天天1 发表于 2013-12-26 12:30

不错。。。。。。。

沙漠Yan 发表于 2013-12-26 12:33

厉害

北迁 发表于 2013-12-26 12:33

还是注册表设置简单

如玉若兰 发表于 2013-12-26 12:33

楼主牛人

hunxiyi 发表于 2013-12-26 12:34

这么牛逼啊。。顶一个

ilysm 发表于 2013-12-26 12:34

真牛X,不过我直接用win自带的

沙漠里的水 发表于 2013-12-26 12:35

运行了显示没有安装驱动……

8.1 64位的系统

slangmgh 发表于 2013-12-26 12:41

回复 #10 沙漠里的水 的帖子

错误信息是什么?

kuki1986 发表于 2013-12-26 13:38

阈值 不是阀值,念“yu” 第四声, 不是“fa”

yueqq 发表于 2013-12-26 13:59

收藏了

tianshuqi 发表于 2013-12-26 13:59

收藏:D :D

675439320 发表于 2013-12-26 14:16

用cmd验证有效,但是目前存在的问题是设定阈值之后无法重新设置回始终充满状态,既是把值设定为96-100也无效,最多只能到95-99

dnyh 发表于 2013-12-26 15:06

火’帖前排

LiveOnLove 发表于 2013-12-26 16:28

还是安装个PM方便点。HOHO

IBM-ThinkPad 发表于 2013-12-26 16:31

好东西,试试,要不是为了阈值,早就不装电源管理器了,一旦错点一下,卡半天出界面:bs(

netron 发表于 2013-12-26 18:04

这种东西造福大众啊,不错

sky540 发表于 2013-12-26 19:05

牛人啊,正需要,在win8.1 64位测试可用

slangmgh 发表于 2013-12-27 09:03

Posted by 675439320 on 2013-12-26 14:16 http://www.ibmnb.com/images/common/back.gif
用cmd验证有效,但是目前存在的问题是设定阈值之后无法重新设置回始终充满状态,既是把值设定为96-100也无效,最多只能到95-99
新的版本已经可以设置始终充满了。

heimahei 发表于 2013-12-27 10:31

果断收藏,还是程序员厉害:D

沙漠里的水 发表于 2013-12-27 10:49

回复 #11 slangmgh 的帖子

可能是昨天你传的时候里面少一个64位的驱动,当时就是提示驱动没有,今天重新下载了,就可以了,另外问一下,为啥我下了图形版的没有图形界面还是CMD下用呢?
或者可否打一个整包传到网盘里下载呢?

slangmgh 发表于 2013-12-27 11:19

回复 #23 沙漠里的水 的帖子

是不是下载覆盖了。一开始的时候图形版和字符版名字一样。去图形版页面去重新下载一下吧。
http://www.ibmnb.com/thread-1427707-1-1.html

沙漠里的水 发表于 2013-12-27 11:37

回复 #24 slangmgh 的帖子

重新下了,好了,发现个问题,原来下的那个和这回下的差1KB,不知道是什么原因了,不过确实好用,非常感谢!

slangmgh 发表于 2013-12-27 12:46

Posted by 沙漠里的水 on 2013-12-27 11:37 http://www.ibmnb.com/images/common/back.gif
重新下了,好了,发现个问题,原来下的那个和这回下的差1KB,不知道是什么原因了,不过确实好用,非常感谢!
程序一直在更新。
驱动程序今天也更新成最新的了。

a77d8d9 发表于 2013-12-27 23:27

赞!

windroc2000 发表于 2013-12-28 00:07

回复 #26 slangmgh 的帖子

与时俱进的更新,牛^c^ ^c^

wmxk007 发表于 2014-2-10 17:40

win8.1用户已经等待很久了

felixj 发表于 2014-2-12 12:47

mark一下,谢谢。适用一下,240没有powere manager
页: [1] 2 3
查看完整版本: 【原创】编了一个小程序,现在你可以不用安装PowerManager来设置电池阀值了