11

我很难弄清楚如何做到这一点。基本上,我要做的就是读取连接到机器的所有设备,并读取驱动程序制造商和设备驱动程序的版本。这是您可以在设备管理器中获得的信息,但我想以编程方式进行。

我做了很多搜索和阅读,但找不到任何可以帮助我做到这一点的东西。有这个 WMI 东西应该可以工作,但我找不到任何有效的例子。我已经阅读并阅读了有关 WMI 的信息,但仍然无法弄清楚。

是否有任何教程可以比 Microsoft 网站更好地解释 WMI?我需要把它降到绘儿乐的水平。

4

2 回答 2

18

请看下面的文章

使用 C# 获取硬件信息

从 Windows Management Instrumentation 检索信息

编辑:

我相信您正在寻找以下Win32_PnPSignedDriver

public class Program
{
    public static void Main()
    {
        ManagementObjectSearcher objSearcher = new ManagementObjectSearcher("Select * from Win32_PnPSignedDriver");

        ManagementObjectCollection objCollection = objSearcher.Get();

        foreach (ManagementObject obj in objCollection)
        {
            string info = String.Format("Device='{0}',Manufacturer='{1}',DriverVersion='{2}' ", obj["DeviceName"], obj["Manufacturer"], obj["DriverVersion"]);
            Console.Out.WriteLine(info);
        }

        Console.Write("\n\nAny key...");
        Console.ReadKey();
    }
}

此外,如果您打算在 WMI 上工作很多,您不妨使用此工具,以避免创建测试应用程序。

于 2013-04-22T17:00:58.970 回答
1

如果您正在从您的机器上查找特定类型的设备信息(假设只有蓝牙) - 那么 c# 中的“ManagementObjectSearcher”就足够了。您只需要包含
using System.Management;
一个条件搜索,如下所示

 ManagementObjectSearcher mos =
                   new ManagementObjectSearcher(@"\root\cimv2", @"Select * From Win32_PnPEntity WHERE ClassGuid = '"+deviceGuid+"'");

这里的“deviceGuid”是设备类类型(一个 guid 值 [所有 PC 都相同])。

于 2013-06-20T10:38:40.343 回答