我很难搞清楚如何做到这一点。基本上,我想要做的就是读取连接到机器的所有设备,并阅读驱动程序制造商和设备驱动程序的版本。这是您可以在设备管理器中获得的信息,但我想以编程方式进行此操作。
我做了很多搜索和阅读,找不到任何可以帮助我做这件事的事情。有这个WMI的东西应该工作,但我找不到任何有效的例子。我已阅读并阅读有关WMI的内容,但仍无法弄明白。
是否有任何可能比微软网站更好地解释WMI的教程?我需要将其降低到绘画水平。
答案 0 :(得分:13)
请查看以下文章
Get Your Hardware Information Using C#
Retrieving Information From 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();
}
}
Aslo,如果你要在WMI上做很多工作,你可以使用这个工具,以避免创建测试应用程序。
答案 1 :(得分:1)
如果您正在寻找机器中的特定类型的设备信息(假设只有蓝牙),那么
c#中的“ManagementObjectSearcher”就足够了。你只需要包括
using System.Management;
用条件搜索条件如下
ManagementObjectSearcher mos =
new ManagementObjectSearcher(@"\root\cimv2", @"Select * From Win32_PnPEntity WHERE ClassGuid = '"+deviceGuid+"'");
这里“deviceGuid”是设备类类型(guid值[对所有PC都相同])。