需要帮助使用visual basic创建电池警报

时间:2014-12-09 15:41:11

标签: vbscript

您好

我一直在搜索资源,程序和代码,当我的笔记本电池电量充满(或几乎已满)时,会为我发出警报以拔下充电器。

没有取得任何成功,直到我看到这个博客 - 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 

1 个答案:

答案 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分钟。