Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在笔记本电脑上读取当前电池充电/放电率_C++_Windows_Battery - Fatal编程技术网

C++ 在笔记本电脑上读取当前电池充电/放电率

C++ 在笔记本电脑上读取当前电池充电/放电率,c++,windows,battery,C++,Windows,Battery,我写了一小段代码,读取笔记本电脑上当前的电池充电/放电。 我遵循了上的示例代码 我的程序每100ms更新一次信息(通过调用DeviceIoControl函数,将IOCTL\u BATTERY\u QUERY\u STATUS作为控制代码),但读取值仅在5-10秒后更改。 例如,如果我将屏幕亮度从最小值更改为最大值,则仅在5-10秒后更新速率。我在Windows 7 32位上使用Visual C++ 2010。 有人知道如何获得充电/放电率的实时读数吗?根据传感器的精度,状态很可能仅由电源设备驱动

我写了一小段代码,读取笔记本电脑上当前的电池充电/放电。 我遵循了上的示例代码

我的程序每100ms更新一次信息(通过调用DeviceIoControl函数,将IOCTL\u BATTERY\u QUERY\u STATUS作为控制代码),但读取值仅在5-10秒后更改。 例如,如果我将屏幕亮度从最小值更改为最大值,则仅在5-10秒后更新速率。我在Windows 7 32位上使用Visual C++ 2010。
有人知道如何获得充电/放电率的实时读数吗?

根据传感器的精度,状态很可能仅由电源设备驱动程序每5-10秒更新一次,或者在发生重大变化时更新一次。

为什么您认为这不正确?延迟可能是因为硬件中某处的电荷缓冲(某些电容器),当电荷耗尽时,它只会导致电池更大的消耗。我得到的值是正确的,我正在询问一种方法(如果有)以更快地看到这些变化。我不认为有电容器,因为随着20W功耗的增加,延迟约为8秒,这将需要一个非常大的电容器!雷蒙德·陈(Raymond Chen)最近发表的一篇博文()似乎很有意义,尽管这篇博文恰巧与另一个API调用有关:“这些电池电量来自硬件本身,因此你要受主板制造商的摆布。一些笔记本电脑每隔1秒更新一次值;其他笔记本电脑可能需要5秒或更长时间。”我在另一台笔记本电脑上运行程序,每2-4秒更新一次。我还发现一些新的惠普笔记本电脑没有这种传感器。