各位朋友,如何用C#获取U盘的Manufacturer的值呢?U盘的Manufacturer的值在windows下面查看如下:
而我用代码取到的值确为:
Name:Manufacturer Value:(Standard disk drives)
取Manufacturer的代码如下: ManagementObjectSearcher disks = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject disk in disks.Get())
{
String diskInterface = disk["InterfaceType"] as string;
if ("USB".Equals(diskInterface))
{
StringBuilder sb = new StringBuilder();
foreach (PropertyData data in disk.Properties)
{
sb.Append(data.Name + " | " + data.Value + "\r\n");
}
Console.write(sb.ToString());//这里可以查看到Manufacturer的值,但是值为(Standard disk drives)
String pnpDeviceId = disk["PNPDeviceID"] as String;
}
}最后我取出来了pnpDeviceId 的值USBSTOR\DISK&VEN_SANDISK&PROD_DATA&REV_PMAP\20CF30E118F8ED31720E0190&0
,其中有一个VEN,不知道是不是微软的Manufacturer也是根据这个VEN_后面的值来提取出来的?各位有办法直接取出和系统显示一样的Manufacturer值吗?u盘ManufacturerPNPDeviceID
而我用代码取到的值确为:
Name:Manufacturer Value:(Standard disk drives)
取Manufacturer的代码如下: ManagementObjectSearcher disks = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject disk in disks.Get())
{
String diskInterface = disk["InterfaceType"] as string;
if ("USB".Equals(diskInterface))
{
StringBuilder sb = new StringBuilder();
foreach (PropertyData data in disk.Properties)
{
sb.Append(data.Name + " | " + data.Value + "\r\n");
}
Console.write(sb.ToString());//这里可以查看到Manufacturer的值,但是值为(Standard disk drives)
String pnpDeviceId = disk["PNPDeviceID"] as String;
}
}最后我取出来了pnpDeviceId 的值USBSTOR\DISK&VEN_SANDISK&PROD_DATA&REV_PMAP\20CF30E118F8ED31720E0190&0
,其中有一个VEN,不知道是不是微软的Manufacturer也是根据这个VEN_后面的值来提取出来的?各位有办法直接取出和系统显示一样的Manufacturer值吗?u盘ManufacturerPNPDeviceID
解决方案 »
- 研究了三年都没搞明白,关于邮件服务器发送的问题
- C#调用C++ DLL函数返回值错误
- 想做个小程序 涉及到Excel的读取 大家教教我哈~
- 请教一个不同窗体间的调用问题?
- 将原来已经有的web工程加到新的项目里面。
- 多线程,解决者100分相送......
- 如何给XmlDocument对象添加一行?
- WPF浏览器应用程序 socket连接发送数据问题
- vs2012能用 Expression Studio 4吗
- 我想问一下win98 下怎么运行c#程序,是不是安装好framework就可以了?需不需要安装pws?
- 如何见list<string>赋值给datagridview
- 笨笨求助,C#采集网页中遇到的一个正则的写法
namespace WMISample
{
using System;
using System.Management; public class MyWMIQuery
{
public static void Main()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_DiskDrive"); foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("DeviceID: {0}", queryObj["DeviceID"]);
Console.WriteLine("PNPDeviceID: {0}", queryObj["PNPDeviceID"]);
Console.WriteLine("Manufacturer: {0}", queryObj["Manufacturer"]);
Console.WriteLine("Model: {0}", queryObj["Model"]);
foreach (ManagementObject b in queryObj.GetRelated("Win32_DiskPartition"))
{
Console.WriteLine(" Name: {0}", b["Name"]);
foreach (ManagementBaseObject c in b.GetRelated("Win32_LogicalDisk"))
{
Console.WriteLine(" Name: {0}", c["Name"]); // here it will print drive letter
}
}
// ...
Console.WriteLine("--------------------------------------------");
}
}
catch (ManagementException e)
{
Console.WriteLine(e.StackTrace);
} Console.ReadLine();
}
}
}
代码来自:
how to determine USB Flash drive manufacturer?
http://stackoverflow.com/questions/123986/how-to-determine-usb-flash-drive-manufacturer