您好,
我一直在搜索资源,程序和代码,当我的笔记本电池电量充满(或几乎已满)时,会为我发出警报以拔下充电器。
我没有取得任何成功,直到我看到这个博客 - http://blogs.technet.com/b/jhoward/archive/2013/04/24/get-an-alert-when-my-battery-reaches-95.aspx
此代码唯一问题是
第13行:iRemaining(或从BatteryStatus调用的RemainingCapacity返回0(可能是浮点数,我无法弄清楚为什么)。我甚至检查了微软文档,它应该是一个百分比。
我想获得电池的当前百分比或总Fullchargedcapacity和EstimatedRemainingCapacity来查找电池电量百分比。
基本上我要问的是如何使用Visual Basic脚本返回电池%。
帮助!
守则:
1 set oLocator = CreateObject("WbemScripting.SWbemLocator")
2 set oServices = oLocator.ConnectServer(".","root\wmi")
3 set oResults = oServices.ExecQuery("select * from batteryfullchargedcapacity")
4 for each oResult in oResults iFull = oResult.FullChargedCapacity
5 next
6
7 while (1)
8 set oResults = oServices.ExecQuery("select * from batterystatus")
9 for each oResult in oResults
10 iRemaining = oResult.RemainingCapacity
12 bCharging = oResult.Charging
12 next
13 iPercent = ((iRemaining / iFull) * 100) mod 100
14 if bCharging and (iPercent > 95) Then msgbox "Battery is at " & iPercent "%",vbInformation,"Battery monitor"
15 wscript.sleep 30000 ' (30 seconds)
16 wend
答案 0 :(得分:0)
听起来主要问题是您无法判断您的代码是否正在执行您想要的操作。如果它成功运行,它将使用一些CPU(虽然它不应该很多),并且在电池充电之前不会显示任何内容。对于debuggig,请尝试更改
if bCharging and (iPercent > 95) Then msgbox "Battery is at " & iPercent & "%",vbInformation, "Battery monitor"
到
msgbox "Battery is at " & iPercent & "%",vbInformation, "Battery monitor"
这将让您查看结果,并了解您的代码是否正常运行。
<强>顺便说一句强>
wscript.sleep
需要时间,以毫秒为单位。因此,您wscript.sleep 30000
的通话只会等待30秒,而不是5分钟。