Пример #1
0
        private static ulong GetSystemDriveSerialNumber()
        {
            char   systemDriveLetter = Environment.SystemDirectory[0];
            string numberAsHexString;

            using (var dsk = new ManagementObject(@"Win32_LogicalDisk.DeviceID=""" + systemDriveLetter + @":"""))
            {
                dsk.Get();
                numberAsHexString = dsk["VolumeSerialNumber"].ToString();
            }
            if (!HexString.IsMatch(numberAsHexString))
            {
                throw new ArgumentException(string.Format("Serial number for volume {0} isn't a valid hexadecimal string ({1})", systemDriveLetter, numberAsHexString));
            }
            return(Convert.ToUInt64(numberAsHexString, 16));
        }