我很难弄清楚如何做到这一点。基本上,我要做的就是读取连接到机器的所有设备,并读取驱动程序制造商和设备驱动程序的版本。这是您可以在设备管理器中获得的信息,但我想以编程方式进行。
我做了很多搜索和阅读,但找不到任何可以帮助我做到这一点的东西。有这个 WMI 东西应该可以工作,但我找不到任何有效的例子。我已经阅读并阅读了有关 WMI 的信息,但仍然无法弄清楚。
是否有任何教程可以比 Microsoft 网站更好地解释 WMI?我需要把它降到绘儿乐的水平。
请看下面的文章
从 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 上工作很多,您不妨使用此工具,以避免创建测试应用程序。
如果您正在从您的机器上查找特定类型的设备信息(假设只有蓝牙) - 那么 c# 中的“ManagementObjectSearcher”就足够了。您只需要包含
using System.Management;
一个条件搜索,如下所示
ManagementObjectSearcher mos =
new ManagementObjectSearcher(@"\root\cimv2", @"Select * From Win32_PnPEntity WHERE ClassGuid = '"+deviceGuid+"'");
这里的“deviceGuid”是设备类类型(一个 guid 值 [所有 PC 都相同])。