【问题标题】:How to get HDD serial number如何获取硬盘序列号
【发布时间】:2014-04-18 17:46:47
【问题描述】:

可能是标题重复。未连接 USB 设备时,我成功获取笔记本电脑序列号的 HDD。但是当任何 USB 连接时,代码会获取连接设备的序列号。即使连接了 USB,我也只想要笔记本电脑或台式机的硬盘序列号。

下面是代码。

using System.Management;

namespace SystemInfo
{
    public class Info1
    {
        public static String GetHDDSerialNo()
        {
            ManagementClass mangnmt = new ManagementClass("Win32_LogicalDisk");
            ManagementObjectCollection mcol = mangnmt.GetInstances();
            string result = "";

            foreach (ManagementObject strt in mcol)
            {
                result += Convert.ToString(strt["VolumeSerialNumber"]);
            }

            return result;
        }
    }
}

【问题讨论】:

  • 您是指带有“连接任何 USB 时”的 USB-HDD 还是真正的任何 USB 设备?
  • 任何 USB 设备。甚至互联网 USB 加密狗。
  • 如果有多个硬盘怎么办?还是没有硬盘?那你想得到什么?
  • 我认为你没有明白这一点。这不是你有多少硬盘的问题。问题是关于获取电脑硬盘的序列号。阅读问题,我说的是代码给了我连接设备的序列号,而不是硬盘的序列号。

标签: c# .net


【解决方案1】:

试试这个

 ManagementObjectSearcher theSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'");
        foreach (ManagementObject currentObject in theSearcher.Get())
        {
            ManagementObject theSerialNumberObjectQuery = new ManagementObject("Win32_PhysicalMedia.Tag='" + currentObject["DeviceID"] + "'");
            MessageBox.Show(theSerialNumberObjectQuery["SerialNumber"].ToString());
        }

【讨论】:

  • 它什么也没显示。还有一件事,我想获取笔记本电脑或台式机硬盘的序列号,而不是连接到它们的设备。
【解决方案2】:

您可以使用 WMI Win32_DiskDrive,过滤包含“固定”的MediaType 并获得SerialNumber

类似:

public static String GetHDDSerialNo()
{
    ManagementClass mangnmt = new ManagementClass("Win32_DiskDrive");
    ManagementObjectCollection mcol = mangnmt.GetInstances();
    string result = "";

    foreach (ManagementObject strt in mcol)
    {
        if (Convert.ToString(strt["MediaType"]).ToUpper().Contains("FIXED"))
        {
            result += Convert.ToString(strt["SerialNumber"]);
        }
    }

    return result;
}

媒体类型可以包含“外部”、“可移动”、“固定”。确切的字符串取决于操作系统。在 7 和 XP 上,String 可能不同。这就是我们使用Contains 的原因。

little reading

【讨论】:

    猜你喜欢
    • 2011-05-04
    • 2010-12-06
    • 2014-01-11
    • 2011-05-10
    • 2010-11-24
    • 2011-01-02
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多