2009-01-16 33 views

回答

28

试试这个:

// add a reference to the System.Management assembly and 
// import the System.Management namespace at the top in your "using" statement. 
// Then in a method, or on a button click: 

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()); 
} 

来源:http://social.msdn.microsoft.com/forums/en-US/Vsexpressvcs/thread/f4447ed3-7e5f-4635-a28a-afff0b620156/

+0

伟大的工作,我有序列号我如何获得USB的实例ID。 – KVK 2014-06-24 05:57:10

9

使用Win32 is described here

编辑:A液原文链接似乎已经失踪。以上是一个缓存副本,作者还在VB.Net中编写了一些示例代码,它是still online here

+0

谢谢,我一直在寻找这样的东西永远! – 2009-01-30 04:45:19

6

我有问题与尤瓦亚当提供作为每一个USB记忆棒的解决方案,我试图在Windows 7

我通过看当前对象的属性PNPDeviceId解决了这个空白的回报。

E.g.

currentObject["PNPDeviceID"].ToString(); 

不知道如何有效的,这仅仅是它为我工作的3个USB棒我试图

+0

也为我工作....谢谢兄弟..... – 2016-07-11 08:52:51