Get serial number only once

This commit is contained in:
2022-12-02 10:43:29 +01:00
parent 6aa00b360b
commit 8dbd0a764e

View File

@@ -72,18 +72,24 @@ namespace Pilz.Cryptography
return hash; return hash;
} }
private static string Win32_PhysicalMedia_SerialNumber = null;
private static string TryGetSerialNumberOfFirstHardDrive() private static string TryGetSerialNumberOfFirstHardDrive()
{ {
var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia"); if (Win32_PhysicalMedia_SerialNumber == null)
var sn = string.Empty;
foreach (ManagementObject wmi_HD in searcher.Get())
{ {
if (string.IsNullOrEmpty(sn) && wmi_HD["SerialNumber"] != null) var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
sn = wmi_HD["SerialNumber"].ToString().Trim(); var sn = string.Empty;
foreach (ManagementObject wmi_HD in searcher.Get())
{
if (string.IsNullOrEmpty(sn) && wmi_HD["SerialNumber"] != null)
sn = wmi_HD["SerialNumber"].ToString().Trim();
}
Win32_PhysicalMedia_SerialNumber = sn;
} }
return sn; return Win32_PhysicalMedia_SerialNumber;
} }
public override string ToString() => ID; public override string ToString() => ID;