How to get serial number of USB-Stick in C#

前端 未结 3 1944
梦如初夏
梦如初夏 2020-12-04 12:57

How do I get the internal serial number of a USB-Stick or USB-HardDrive in C#?

相关标签:
3条回答
  • 2020-12-04 13:16

    A solution using Win32 is described here

    Edit: the original link seems to have gone missing. The above is a cached copy, and the author also wrote some sample code in VB.Net which is still online here.

    0 讨论(0)
  • 2020-12-04 13:27

    Try this:

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

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

    0 讨论(0)
  • 2020-12-04 13:35

    I had problems with the solution offered by Yuval Adam as every USB stick I tried return blank on windows 7.

    I solved this by just looking at the property PNPDeviceId on the current object.

    E.g.

    currentObject["PNPDeviceID"].ToString();
    

    Not sure how valid this is but it worked for me on the 3 USB Sticks I tried

    0 讨论(0)
提交回复
热议问题