2009-01-16 46 views

Respuesta

28

Prueba esto:

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

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

+0

gran trabajo que me dieron el número de serie ¿Cómo puedo obtener ID de instancia de la USB. – KVK

9

Una solución usando Win32 is described here

Editar: el enlace original parece haber desaparecido. Lo anterior es una copia en caché, y el autor también escribió un código de muestra en VB.Net que es still online here.

+0

¡Gracias, he estado buscando algo como esto para siempre! –

6

he tenido problemas con la solución ofrecida por Yuval Adam como cada memoria USB Probé en blanco retorno de Windows 7.

I resuelto este con sólo mirar la PNPDeviceId propiedad en el objeto actual.

E.g.

currentObject["PNPDeviceID"].ToString(); 

No sabe cómo es válida esta pero funcionó para mí en las 3 memorias USB que probé

+0

Funcionó para mí también .... gracias hermano ..... –

Cuestiones relacionadas