2 回答

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以將ManagmentObjectSearch與ASSOCIATORS OF語(yǔ)句結(jié)合使用:
public static string GetSerialNumber(string logicalDrive)
{
? ? using (var partitionsQuery = new ManagementObjectSearcher(string.Format("ASSOCIATORS OF {{Win32_LogicalDisk.DeviceID='{0}'}} WHERE ResultClass = Win32_DiskPartition", logicalDrive)))? ? ? ? ? ??
? ? {
? ? ? ? foreach (var results in partitionsQuery.Get())
? ? ? ? {
? ? ? ? ? ? using (var diskDrives = new ManagementObjectSearcher(string.Format("ASSOCIATORS OF {{Win32_DiskPartition.DeviceID='{0}'}} WHERE ResultClass=Win32_DiskDrive", results["DeviceID"])))
? ? ? ? ? ? {
? ? ? ? ? ? ? ? foreach (var d in diskDrives.Get())
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? Console.WriteLine("Serial: " + d["SerialNumber"]);
? ? ? ? ? ? ? ? ? ? return d["SerialNumber"].ToString();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? return null;
}?
用法:
var num = GetSerialNumber(Path.GetPathRoot(Environment.SystemDirectory).TrimEnd(new [] {'\\'}));
注意:不要忘記從 . 返回的路徑中刪除反斜杠Path.GetPathRoot。

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以使用 System.Management 中的 ManagementObjectSearcher 類,然后循環(huán)遍歷屬性來(lái)查找序列號(hào)。
我認(rèn)為沿著這些思路的東西會(huì)讓你接近你正在尋找的東西......
? ? ? ? ? ? ? ? var search = new ManagementObjectSearcher("select * from Win32_DiskDrive");
? ? ? ? ? ? ? ? foreach (var mo in search.Get())
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? if (mo["SerialNumber"] != null)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? return mo["SerialNumber"].ToString();
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
- 2 回答
- 0 關(guān)注
- 130 瀏覽
添加回答
舉報(bào)