Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#4.0中区分硬盘驱动器型号_C#_Wmi_Hard Drive - Fatal编程技术网

如何在C#4.0中区分硬盘驱动器型号

如何在C#4.0中区分硬盘驱动器型号,c#,wmi,hard-drive,C#,Wmi,Hard Drive,我目前正在使用WMI查询返回连接到计算机的所有硬盘的制造商名称。不幸的是,这并没有特别返回“Intel”或“Western Digital”,所以我使用string.Contains()来比较制造商是谁。 我的简单代码是: //*** Declare Management Class ManagementClass clsMgtClass = new ManagementClass("Win32_DiskDrive"); ManagementObj

我目前正在使用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之类的东西,并且没有任何制造商的真实指示。因此,我的问题是,我如何能够可靠地找到硬盘驱动器制造商,并能够轻松地区分制造商,而不必通过谷歌脚本或数据库查询型号。谢谢 另一个编辑:使用成员“标题”,它将返回上面的示例。使用成员“制造商”只需返回“(标准磁盘驱动器)”

ST-seagate

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

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

总之,您可能需要创建一个表,以人性化的方式查找信息

这将帮助您了解合并的内容

这是windows的批处理文件 圣希捷

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

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

总之,您可能需要创建一个表,以人性化的方式查找信息

这将帮助您了解合并的内容

这是windows的批处理文件

帮助,我上面提到的型号是ST31000340AS,它适合于这个前缀计算器,但它不是最优雅的解决方案。如有任何建议,我将不胜感激。我找不到wmi的替代品,无法为磁盘驱动器获取格式良好、可读的制造商名称。您能否在网络上运行脚本,然后获得唯一制造商名称的计数?或者我没有抓住重点……我可以用jJack,但那只不过是编一个我可以在互联网上轻松完成的硬盘ID列表而已。经过一段时间的搜索,似乎唯一的解决方案将是找出能够区分制造商的独特模式或组合。这就是它们在设备管理器中的显示方式,因此我认为您不会得到更好的结果。Device Manager还将制造商显示为“(标准磁盘驱动器)”。可以使用正则表达式查找首字母缩写和缩写模式。或者以其他方式测量wmi返回的内容与“友好”名称之间的levenshtein距离。图书馆是为这类问题而存在的,这是你愿意探索的吗?帮助,我上面提到的型号是ST31000340AS,它适合这个前缀计算器,但它不是最优雅的解决方案。如有任何建议,我将不胜感激。我找不到wmi的替代品,无法为磁盘驱动器获取格式良好、可读的制造商名称。您能否在网络上运行脚本,然后获得唯一制造商名称的计数?或者我没有抓住重点……我可以用jJack,但那只不过是编一个我可以在互联网上轻松完成的硬盘ID列表而已。经过一段时间的搜索,似乎唯一的解决方案将是找出能够区分制造商的独特模式或组合。这就是它们在设备管理器中的显示方式,因此我认为您不会得到更好的结果。Device Manager还将制造商显示为“(标准磁盘驱动器)”。可以使用正则表达式查找首字母缩写和缩写模式。或者以其他方式测量wmi返回的内容与“友好”名称之间的levenshtein距离。图书馆是为这类问题而存在的,这是你愿意探索的吗?