为了获得卷序列,我编写了一个看起来像这样的函数:
string drive = Environment.ExpandEnvironmentVariables("%SystemDrive%").Replace(":", "");
string id = getVolumeSerial(drive);
private static string getVolumeSerial(string drive)
{
ManagementObject disk = new ManagementObject(@"win32_logicaldisk.deviceid="""
+ drive + @":""");
disk.Get();
string volumeSerial = disk["VolumeSerialNumber"].ToString();
disk.Dispose();
return volumeSerial;
}
我将包含该软件的软件部署到30人,但在31的计算机上,ManagementObject的init失败并引发异常。是否有更好/替代/更可靠的方法来获得音量序列号?