2

我目前正在使用 WMI 查询来返回连接到计算机的所有硬盘的制造商名称。不幸的是,这并没有专门返回“Intel”或“Western Digital”,所以我使用 string.Contains() 来比较制造商是谁。我的简单形式的代码是:

        //*** Declare Management Class
        ManagementClass clsMgtClass = new ManagementClass("Win32_DiskDrive");
        ManagementObjectCollection colMgtObjCol = clsMgtClass.GetInstances();

        //*** Loop Over Objects

        foreach (ManagementObject objMgtObj in colMgtObjCol)
        {
            MessageBox.Show(objMgtObj.Properties["Manufacturer"].Value.ToString());
        }

这可能在 60% 的情况下有效,因为它依赖于 WMI 来返回整个名称。因此,例如,我的硬盘驱动器返回为“SanDisk SDSSDX240GG25 ATA 设备”,这很好,因为我可以很容易地找到“SanDisk”。同样,西部数据的产品会显示为“WD3000USB”或类似的东西,我可以清楚地找到“WD”。然而,在另一台使用希捷硬盘的计算机上,它有 SE1000GXB 等等,并且没有任何真正的制造商指示。所以我的问题是,我怎样才能可靠地找到硬盘制造商,并且能够轻松区分制造商,而不必费力通过谷歌脚本或数据库查询型号。谢谢。另一个编辑:使用成员“Caption”,它将返回上面的示例。

4

1 回答 1

0

ST-希捷

您可以从每个现在合并的硬盘公司下载型号前缀列表,并根据型号制作一个表格,如果您愿意,该表格也可以包含实际容量。

型号中通常包含足够的信息,1986 年后磁盘设备上的序列号通常包含型号信息。

最重要的是,您可能必须创建一个表格以以人类友好的方式查找信息。

http://www.robvanderwoude.com/files/listhdds_2k.txt

这将帮助您了解合并的内容 http://en.wikipedia.org/wiki/List_of_defunct_hard_disk_manufacturers

这是 Windows http://www.robvanderwoude.com/sourcecode.php?src=listhdds_2k的批处理文件

于 2013-04-15T02:29:16.393 回答