c#硬盘序列号错误

时间:2017-03-14 16:42:21

标签: c# wmi hard-drive serial-number

您好我正在开发一个程序,允许我检测计算机中所有硬盘的序列号并将其显示为条形码。

我让它在我当前的机器上工作(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机器上也不起作用。

任何人都有任何想法可以解决我的问题吗?先谢谢!

0 个答案:

没有答案