Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows桌面应用程序中是否有获取电池电量的API函数?_C#_Windows_Visual Studio 2012 - Fatal编程技术网

C# Windows桌面应用程序中是否有获取电池电量的API函数?

C# Windows桌面应用程序中是否有获取电池电量的API函数?,c#,windows,visual-studio-2012,C#,Windows,Visual Studio 2012,我正在创建一个桌面应用程序,我想在其中获取设备(笔记本电脑)的电池电量。我用C#来做这个。有什么方法可以帮我做到这一点吗?我已经在Windows Phone 8平台上使用Windows.Phone.Devices.Power.Battery.GetDefault().RemainingChargePercent完成了此操作。桌面端也有类似的API吗 private static string GetBatteryLevel() { ObjectQuery query = new Obje

我正在创建一个桌面应用程序,我想在其中获取设备(笔记本电脑)的电池电量。我用C#来做这个。有什么方法可以帮我做到这一点吗?我已经在Windows Phone 8平台上使用
Windows.Phone.Devices.Power.Battery.GetDefault().RemainingChargePercent
完成了此操作。桌面端也有类似的API吗

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

我试图使用Windows窗体应用程序创建相同的工具。但是,当我尝试使用
Systems.Data.Objects
命名空间时,我的Visual Studio显示错误。您在Visual Studio中选择了什么项目模板?@TheRookierLearner您可以使用任何您喜欢的项目模板,只要您引用
System.Management
程序集。在解决方案资源管理器中右键单击您的项目,然后单击
添加引用
,然后搜索
系统管理
()。添加引用后,向类
using System.Management添加一个using指令@TheRookierLearner这是一个using指令。在using指令生效之前,您需要添加对
System.Management
程序集的引用。我不知道该怎么说,谢谢^上述评论很有帮助。:)@TheRookierLearner没问题=)