2015-05-13 48 views
0

我想檢索我的硬盤使用C#的磁盤ID如何使用C#(而不是「SerialNumber」)獲取磁盤ID?

我不希望「SerialNumber」像大多數文章所談論的那樣,因爲它沒有出現在我的盒子上。

要檢查這個ID,您可以在Windows上運行 「CMD」:

diskpart 
    list disk 
    select disk 0 
    detail disk 

輸出是這樣的:

HGST HTS725050A7E630 
    Disk ID: 1033D54D 
    ... 

在我的虛框輸出

VBOX HARDDISK 
Disk ID: 22452244 

磁盤ID似乎是一個32位整數。

是否有無論如何使用C#(使用API​​,而不是解析cmd輸出)得到相同的東西?

回答

1

您可以使用WMI和Win32_DiskDrive類。有一個DeviceIDSerialNumber屬性,您可能想要檢查它是否包含您正在查找的值。

+1

DeviceID與「\\。\ PHISICALDRIVE0」等所有計算機上的DeviceID相同。 – Leon

+0

@LeonZeng你能列舉這個類的所有屬性,看它們是否包含你感興趣的值嗎? – ken2k

1

該值存儲爲'簽名'。你得到這個相同的地方,你得到的序列號。

ManagementObjectSearcher win32DiskDrives = new ManagementObjectSearcher("select * from Win32_DiskDrive"); 
foreach (ManagementObject win32DiskDrive in win32DiskDrives.Get()) 
{ 
    Console.WriteLine("{0:X}", win32DiskDrive.Properties["Signature"].Value); 
} 
+0

當我運行你爲diskpart提供的步驟時,我得到了磁盤ID E3D125A4 - 當我運行上面的代碼時,我得到:E3D125A4。嘗試了15個不同的磁盤,並獲得每次匹配的值。 –

+0

謝謝是的。我用一個工具來檢查它,但我沒有注意到它以十進制格式顯示。 – Leon

相關問題