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());
}
如何获得USB-Stick或USB-HardDrive的内部序列号?
如果我插入HP或SanDisk笔式驱动器,它将显示正确的完整序列号,但是如果我插入其他笔式驱动器,则它将仅显示序列号的第一位。为什么会出现问题,我不知道,所以请使我正确。
尝试使用...
currentObject["PNPDeviceID"]
代替 currentObject["DeviceID"]
编辑:将查询更改为Select * From __InstanceOperationEvent Within 1 Where TargetInstance ISA 'Win32_DiskDrive' and TargetInstance.InterfaceType='USB'
并检查。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句