[Solved] Battery Status in winforms


I thing that what you want to do is this:

private void BatteryStatus()
{
    System.Management.ManagementClass wmi  = new System.Management.ManagementClass("Win32_Battery");
    var allBatteries = wmi.GetInstances();

    foreach (var battery in allBatteries)
    {
        int estimatedChargeRemaining = Convert.ToInt32(battery["EstimatedChargeRemaining"]);           
        label13.Text = "Remaining:" + "  " + estimatedChargeRemaining + "  " + "%";
    }
}

No need for and if statment, the label will be updated no matter what the percentage is.

On the second part of the question you say that you want to show the “battery status”, you can then use if like this:

  private void BatteryStatus()
 {
    System.Management.ManagementClass wmi  = new System.Management.ManagementClass("Win32_Battery");
    var allBatteries = wmi.GetInstances();

    foreach (var battery in allBatteries)
    {
        int estimatedChargeRemaining = Convert.ToInt32(battery["EstimatedChargeRemaining"]); 
        string Status = "";    
        if(estimatedChargeRemaining < 15) Status = "Critical";
        else  if(estimatedChargeRemaining < 35) Status = "Low";
        else  if(estimatedChargeRemaining < 60) Status = "Regular";
        else  if(estimatedChargeRemaining < 90) Status = "High";
        else Status = "Complete";

        label13.Text = "Remaining:" + "  " + estimatedChargeRemaining + "  " + "% | Status: " + Status;
    }
}

3

solved Battery Status in winforms