4

C# で、デバイス マネージャーからシステム デバイス ID を取得しようとしています。USB デバイス ID を見つけるためのコードをいくつか見つけましたが、コードを USB デバイスから PCI デバイスに変更する方法がわかりません。

これは私が見つけたコードです:

 ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_SystemDevices WHERE InterfaceType='USB'");    
 foreach (ManagementObject mo in mos.Get())     
 {
      ManagementObject query = new ManagementObject("Win32_PhysicalMedia.Tag='" + mo["DeviceID"] + "'");      
      Console.WriteLine(query["SerialNumber"]);    
}
4

1 に答える 1

4

MSDN によると、Win32_PhysicalMediaはあらゆる種類のドキュメントまたはストレージ メディアを表します。PCI デバイスから DeviceID を取得する場合 (コントロール パネルのデバイス マネージャーなど) 、プラグ アンド プレイ デバイスのプロパティを表すWin32_PnPEntityクラスが必要です。したがって、次のコードを使用してみてください。

ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_PnPEntity");

foreach (ManagementObject queryObj in searcher.Get())
{
     Console.WriteLine("DeviceID: {0}", queryObj["DeviceID"]);
     Console.WriteLine("Description: {0}", queryObj["Description"]);
}

このコードを実行すると、PCI デバイスに関する多くの情報が得られます

于 2012-08-29T06:27:09.940 に答える