c# usb usb-drive
en línea aquítodavía

Cómo obtener el número de serie del dispositivo USB en C#



usb-drive (3)

¿Cómo obtengo el número de serie interno de un USB-Stick o USB-HardDrive en C #?


Tuve problemas con la solución ofrecida por Yuval Adam ya que cada dispositivo USB que intenté devolvió en blanco en Windows 7.

Lo resolví solo mirando la propiedad PNPDeviceId en el objeto actual.

P.ej

currentObject["PNPDeviceID"].ToString();

No estoy seguro de qué tan válido es esto, pero funcionó para mí en los 3 lápices USB que probé


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/


Aquí se describe una solución que usa Win32

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 todavía está en línea aquí .