我正在使用以下代码来获取我的驱动器序列号。它在 Windows 7、8、8.1 和 10 Professional 上运行良好,但在 Windows 10 Home 上出现错误。
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject wmi_HD in searcher.Get())
{
if (wmi_HD["SerialNumber"] == null)
hddId = null;
else
hddId = wmi_HD["SerialNumber"].ToString();
}
Run Code Online (Sandbox Code Playgroud)
我越来越
System.NullReferenceException:未将对象引用设置为对象的实例。
有谁知道为什么?在这种情况下,我需要做什么才能获得序列号?
还有一个问题:如果我从我的 pendrive 启动操作系统,这段代码会起作用吗?我怎么知道操作系统是从笔式驱动器或磁盘或任何其他资源运行的?
当我转到设备管理器时,我看到: