Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get battery information in windows?

I have two laptops here. One is running Vista, the other Windows 7. I need to get the specifications on the batteries in both, how do I go about that?

The reason I'm asking is that I'd like to know if they're lithium ion or something else. Supposedly other types of batteries may have adversely affected charge capacities if left plugged in for too long.

like image 336
rectangletangle Avatar asked Jul 01 '10 01:07

rectangletangle


2 Answers

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.

like image 83
Garett Avatar answered Nov 01 '22 23:11

Garett


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

like image 38
Preet Sangha Avatar answered Nov 01 '22 22:11

Preet Sangha