public BatteryCondition GetCurrentBatteryCondition() { var query = new ObjectQuery(GetWmiBatterySqlQuery); var searcher = new ManagementObjectSearcher(query); var collection = searcher.Get(); var batteryCondition = new BatteryCondition(); foreach (var coll in collection) { var wmiBattery = (ManagementObject)coll; batteryCondition .SetPlugType(Convert.ToInt32(wmiBattery[BatteryStatusPropertyName])); batteryCondition .SetChargeStatus(Convert.ToInt32(wmiBattery[BatteryEstimatedChargeRemainingPropertyName])); batteryCondition .SetEstimatedRunTime(Convert.ToInt32(wmiBattery[BatteryEstimatedRuntimePropertyName])); } return(batteryCondition); }