您好我正在开发一个程序,允许我检测计算机中所有硬盘的序列号并将其显示为条形码。
我让它在我当前的机器上工作(win10)并且它获得了正确的序列号(与硬盘驱动器标签上的相同)但是当我尝试在另一台机器(win7)上使用它时它只输出一个长的数字上的字符串。
该程序能够在我的usb上检测并输出序列号。
var 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.SerialNum = Convert.ToString(wmi_HD.GetPropertyValue("SerialNumber"));
hdCollection.Add(hd);
}
这是我正在使用的当前代码,但它输出的序列号是:5635454d4338414e202020202020202020202020
我尝试过Win32_LogicalDrive和Win32_Volume,但输出相同的字符串。
我也试过这段代码:
ManagementClass driveClass = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection drives = driveClass.GetInstances();
foreach (ManagementObject drive in drives)
{
HardDrive hd = new HardDrive();
hd.Model = drive["Name"].ToString();
//hd.SerialNum = drive.GetPropertyValue("SerialNumber").ToString();
hd.SerialNum = drive["SerialNumber"].ToString();
}
但这在Windows 7机器上也不起作用。
任何人都有任何想法可以解决我的问题吗?先谢谢!