我正在测试一个应用程序,以便让用户知道何时插入和拔下笔记本电脑以最大限度地利用笔记本电脑电池。除此之外,我试图从Windows功率计复制工具提示。Windows如何计算电池的剩余时间?
到目前为止,这是相当成功的一些差异。
- Windows剩余时间通知,例如, “剩余X小时XX分钟(XX%)”,直到大约一分钟后才显示。
- 在Windows剩余时间更换电池负载
下显得比较稳重,这些使我想到了Windows剩余时间算法均在过去分钟左右,但我找不到任何文档。有谁知道它到底做了什么,所以我可以重现它?
这里是我的实现(在Python中,但问题是语言不可知的)。我想我需要平均每y
秒投票的最近x
放电率,但需要知道的值为x
和y
。
t = wmi.WMI(moniker = "//./root/wmi")
batts = t.ExecQuery('Select * from BatteryStatus where Voltage > 0')
time_left = 0
for _i, b in enumerate(batts):
time_left += float(b.RemainingCapacity)/float(b.DischargeRate)
hours = int(time_left)
mins = 60 * (time_left % 1.0)
return '%i hr %i min' % (hours, mins)
只是一个澄清 - 你使用[任何这些函数](http://msdn.microsoft.com/en-us/library/windows/desktop/aa373163%28v=vs.85%29.aspx)某处? – admdrew
这是估计的课程。它没有时间机器知道你要开始玩游戏并迅速耗尽你的电池。 –
@admdrew我正在使用'wmi',这是一个大概在某个级别包装这些函数的Python包。我正在从[此答案](http://stackoverflow.com/a/16380996/1706564)执行。 –