【问题标题】:How to read devices and driver versions如何读取设备和驱动程序版本
【发布时间】:2015-08-14 09:40:21
【问题描述】:

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

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

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

【问题讨论】:

  • 不是c#,但Scripting Guy 有一些可能会有所帮助的指针。这是一个微软网站,你相信吗?!

标签: c# .net windows


【解决方案1】:

请看下面的文章

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();
    }
}

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

【讨论】:

  • 好的,我离你链接的所有这些东西越来越近了。我唯一的问题是,所有 Win32 类中的哪一个可以让我查看设备和驱动程序版本?
  • 我称之为答案。不过,我仍然需要搜索所有 Win33 类,看看哪些可以为我提供设备和驱动程序。
  • 我认为这是我唯一能找到的拥有您想要的属性的人。如果还有其他的,我很高兴知道。
  • 你知道吗?这让我得到了我感兴趣的所有设备!谢谢!!!这是很多帮助,你不明白这有多大帮助!
  • @AndiJay:很高兴。这也是一个非常有趣的问题!我已将其添加为收藏夹。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 2022-01-15
    相关资源
    最近更新 更多