我目前正在使用 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”,它将返回上面的示例。