2012-07-05 58 views
2

我正在使用WMI查詢返回連接到計算機的所有硬盤的製造商名稱。不幸的是,這並不是專門返回「Intel」或「Western Digital」,所以我使用string.Contains()來比較製造商是誰。 我的簡單形式的代碼是:如何區分C#4.0中的硬盤驅動器型號

 //*** Declare Management Class 
     ManagementClass clsMgtClass = new ManagementClass("Win32_DiskDrive"); 
     ManagementObjectCollection colMgtObjCol = clsMgtClass.GetInstances(); 

     //*** Loop Over Objects 

     foreach (ManagementObject objMgtObj in colMgtObjCol) 
     { 
      MessageBox.Show(objMgtObj.Properties["Manufacturer"].Value.ToString()); 
     } 

這個工作的時候,也許60%,因爲它依賴於WMI返回全名。因此,例如我的硬盤驅動器返回爲「SanDisk SDSSDX240GG25 ATA Device」,這很好,因爲我可以很容易地找到「SanDisk」。同樣,西部數據產品將顯示爲「WD3000USB」或類似的東西,我可以清楚地發現「WD」。但是在另一臺使用希捷硬盤的計算機上,它有SE1000GXB等等,沒有任何製造商的實際指示。所以我的問題是,我怎樣才能可靠地找到硬盤驅動器製造商,並且能夠輕鬆地區分製造商,而無需通過谷歌腳本或數據庫查詢型號的所有麻煩。謝謝。 另一個編輯:使用成員「標題」,它會返回上面的例子。使用成員「製造商」將簡單地返回「(標準磁盤驅動器)」

+0

http://hardforum.com/showthread.php?t=921544幫助一個批處理文件,我上面提到的型號是ST31000340AS,它適合這個前綴計算器,但它不是最優雅的解決方案。任何建議,將不勝感激 – OSer

+0

我無法找到替代品wmi爲磁盤驅動器獲得一個良好的人類可讀製造商名稱。你可以在網絡上運行腳本,然後得到唯一的製造商名稱?或者我錯過了這一點.... – JohnZaj

+0

我可以jJack,但這只是編制一個硬盤ID的列表,我可以輕鬆地在互聯網上做的。經過一段時間的搜索後,似乎唯一的解決方案將是找出可區分製造商的獨特模式或組合。 – OSer

回答

0

ST - 希捷

你可以從每個現已合併硬盤公司的下載型號前綴列表,使一個表出來如果你願意,這個表格可以包含實際的容量。

型號通常具有足夠的信息,1986年後磁盤設備上的序列號通常包含模型信息。

底線,您可能需要創建一個表以人性化的方式查找信息。

http://www.robvanderwoude.com/files/listhdds_2k.txt

這將幫助你瞭解合併 http://en.wikipedia.org/wiki/List_of_defunct_hard_disk_manufacturers

這裏的窗戶 http://www.robvanderwoude.com/sourcecode.php?src=listhdds_2k

相關問題