2013-04-22 92 views
8

我很難搞清楚如何做到這一點。基本上,我想要做的就是讀取連接到機器的所有設備,並閱讀驅動程序製造商和設備驅動程序的版本。這是您可以在設備管理器中獲得的信息,但我想要通過編程來完成。如何閱讀設備和驅動程序版本

我做了很多搜索和閱讀,並找不到任何可以幫助我做到這一點。有這WMI的東西應該工作,但我找不到任何工作的例子。我已閱讀並閱讀了關於WMI的內容,但仍無法弄清楚。

有沒有可以解釋WMI比微軟網站更好的教程?我需要這一點,以達到蠟筆水平。

+1

不是'c#',而是[腳本專家](http://blogs.technet.com/b/heyscriptingguy/archive/2006/03/20/how-can-i-get-a-list-of- installed-device-drivers.aspx)有一些可能有所幫助的指針。這是一個微軟網站,你會相信嗎?! – icabod 2013-04-22 16:49:16

回答

10

請看看下面的文章

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上工作很多,你可以使用這個工具來避免創建測試應用程序。

+0

好吧,我與你連接的所有東西關係更加密切。我唯一的問題是,所有Win32類中的哪一個會讓我看到設備和驅動程序版本? – 2013-04-22 19:36:13

+0

我打電話給這個答案。我仍然需要搜索所有的Win33類,看看哪些能夠給我設備和驅動程序。 – 2013-04-23 13:33:32

+0

我認爲這是唯一一個我可以找到你想要的財產。如果有其他人,我會很高興知道。 – 2013-04-23 14:57:05

1

如果你正在尋找一個特定種類的設備信息,從您的計算機(假設只有藍牙) - 然後 「ManagementObjectSearcher」在C#是不夠好。你只需要包括
using System.Management;
把條件搜索與它如下

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

這裏「DEVICEGUID」是設備類類型(GUID值同樣爲所有PC])。