获取硬盘序列号

我想获取硬盘序列号。我该怎么做?我尝试了两个代码,但没有得到

StringCollection propNames = new StringCollection();

ManagementClass driveClass = new ManagementClass("Win32_DiskDrive");

PropertyDataCollection props = driveClass.Properties;

foreach (PropertyData driveProperty in props)

{

propNames.Add(driveProperty.Name);

}

int idx = 0;

ManagementObjectCollection drives = driveClass.GetInstances();

foreach (ManagementObject drv in drives)

{

Label2.Text+=(idx + 1);

foreach (string strProp in propNames)

{

//Label2.Text+=drv[strProp];

Response.Write(strProp + " = " + drv[strProp] + "</br>");

}

}

在这个我没有得到任何唯一的序列号。

第二个是

string drive = "C";

ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"" + drive + ":\"");

disk.Get();

Label3.Text = "VolumeSerialNumber="+ disk["VolumeSerialNumber"].ToString();

我在这里VolumeSerialNumber。但这不是唯一的。如果我格式化硬盘,这将会改变。我怎么能得到这个?

回答:

嗯,看看您的第一组代码,我认为您已经检索(也许是?)硬盘模型。序列号来自Win32_PhysicalMedia

获取硬盘型号

    ManagementObjectSearcher searcher = new

ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");

foreach(ManagementObject wmi_HD in searcher.Get())

{

HardDrive hd = new HardDrive();

hd.Model = wmi_HD["Model"].ToString();

hd.Type = wmi_HD["InterfaceType"].ToString();

hdCollection.Add(hd);

}

获取序列号

 searcher = new

ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");

int i = 0;

foreach(ManagementObject wmi_HD in searcher.Get())

{

// get the hard drive from collection

// using index

HardDrive hd = (HardDrive)hdCollection[i];

// get the hardware serial no.

if (wmi_HD["SerialNumber"] == null)

hd.SerialNo = "None";

else

hd.SerialNo = wmi_HD["SerialNumber"].ToString();

++i;

}

资源

希望这可以帮助 :)

以上是 获取硬盘序列号 的全部内容, 来源链接: utcz.com/qa/405528.html

回到顶部