从设备管理器读取属性?

时间:2018-12-15 08:34:00

标签: c# wpf

有什么方法可以从设备管理器中读取属性?

我需要从台式机C#WPF应用中读取与表面拨号盘不配对的表面拨号盘的电池状态。

Link to screen capture here

2 个答案:

答案 0 :(得分:0)

您可以对WMI查询进行操作。这是一个小例子:

static void Main(string[] args)
    {
        string query = @"SELECT * FROM Win32_PnPEntity";

        var moSearch = new ManagementObjectSearcher(query);
        var moCollection = moSearch.Get();

        foreach (ManagementObject mo in moCollection)
        {
            Console.WriteLine(mo.Path.ToString());
            foreach (var item in mo.Properties)
            {
                Console.WriteLine($"{item.Name}: {item.Value}");
            }
            Console.WriteLine();
        }

        Console.ReadKey();
    }

请记住向项目添加System.Management引用。

在设备管理器上查找确切的DeviceIdDevicePath,以便在查询中添加WHERE语句。

有关WMI中的类和查询的更多信息,请参阅官方文档https://docs.microsoft.com/en-us/windows/desktop/cimwin32prov/computer-system-hardware-classes

答案 1 :(得分:0)

这是运行示例的结果,不知道如何查询“蓝牙LE电池电量”

result