是否有任何API函数可以获得Windows桌面应用程序中的电池电量?

时间:2013-04-09 12:18:27

标签: c# windows visual-studio-2012

我正在创建一个桌面应用,我希望获得设备(笔记本电脑)的电池电量。我正在使用C#。有什么方法可以帮我这么做吗?我使用Windows.Phone.Devices.Power.Battery.GetDefault().RemainingChargePercent在Windows Phone 8平台上完成了此操作。桌面方面是否也有类似的API?

1 个答案:

答案 0 :(得分:3)

private static string GetBatteryLevel()
{
    ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_Battery");
    using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query))
    {
        using (ManagementObjectCollection results = searcher.Get())
        {
            using (var enumerator = results.GetEnumerator())
            {
                if (!enumerator.MoveNext())
                    return string.Empty;

                return string.Format("{1} {0}%", enumerator.Current["EstimatedChargeRemaining"],
                                     enumerator.Current["BatteryStatus"].ToString() == "1"
                                         ? string.Empty
                                         : "Charging:");
            }
        }
    }
}

您可以使用Windows Management Instrumentation