How do I get battery information in windows?

二次信任 提交于 2019-11-30 19:29:24

You could use WMI and the Win32_Battery class. It has a property called Chemistry that has this information.

UPDATE:

Actually, there is also Win32_PortableBattery, which would be more appropriate for a laptop battery. They both inherit from the CIM_Battery class.

The IOCTL_BATTERY_QUERY_INFORMATION info from DeviceIOControl can tell you the following info:

Information level

  • BatteryDeviceName
  • BatteryEstimatedTime
  • BatteryGranularityInformation
  • BatteryInformation
  • BatteryManufactureDate
  • BatteryManufactureName
  • BatterySerialNumber
  • BatteryTemperature
  • BatteryUniqueID

The BatteryInformation structure contains the Chemistry field which describes this info you require.

  • PbAc : Lead Acid
  • LION : Lithium Ion
  • Li-I : Lithium Ion
  • NiCd : Nickel Cadmium
  • NiMH : Nickel Metal Hydride
  • NiZn : Nickel Zinc
  • RAM : Rechargeable Alkaline-Manganese

There is an example here: http://msdn.microsoft.com/en-us/library/bb204769(v=VS.85).aspx

If you're using managed code (C# or VB) the Windows API Code Pack has a wrapper class that raises .NET events when power events (going on or off AC, reaching critical battery level etc) happen and exposes properties like estimated battery life remaining. It also includes a whole pile of gory details - the sample shows them.

Here is a interesting link: http://www.nextofwindows.com/find-out-how-healthy-your-battery-is-on-your-windows-7-laptop/ command described there

powercfg -energy

will produce you nice report with many details about battery.

Hopeit helps :)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!