C#でUSB-StickまたはUSB-HardDriveの内部シリアル番号を取得するにはどうすればよいですか?
これを試して:
// 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());
}
私が試したすべてのUSBスティックがWindows7で空白に戻ったため、YuvalAdamが提供するソリューションに問題がありました。
現在のオブジェクトのプロパティPNPDeviceIdを確認するだけで、これを解決しました。
例えば。
currentObject["PNPDeviceID"].ToString();
これがどれほど有効かはわかりませんが、試した3つのUSBスティックで機能しました