Не удается получить подпись жесткого диска из Windows 10 в приложении C#. Но почему?

Большинство десктопов работают отлично, но когда он запускается на недавно настроенном десктопе, таком как клоновый ПК 7-го поколения, все приложение закрывается с ошибкой, сообщающей, что он не может читать HDD. Но почему? Я использую.net 4.5.

var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");

foreach (ManagementObject wmi_HD in searcher.Get())
{
   string SerialNo = wmi_HD.GetPropertyValue("Signature").ToString();

   if (SerialNo == "0" || SerialNo == "" || SerialNo == null)
   {
   }
   else
   {
      hdCollection.Add(SerialNo);
   }
}

1 ответ

Вы можете написать запасной механизм, чтобы получить подпись из реестра.
Он расположен под HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices, Первые 4 байта в значениях данных являются сигнатурой.

Другие вопросы по тегам