如何从 BTU C# 获取热量

How to get heat generation from the BTU C#

我一直在尝试使用 WMI 类 从 BTU 获取热量,但无济于事。

public static ushort GetHeat()
{
    ManagementObjectSearcher Searcher = new  ManagementObjectSearcher("SELECT HeatGeneration FROM CIM_Chassis");
    ushort Heat = 0;

    foreach (ManagementObject HeatAmount in Searcher.Get())
    {
        Heat = (UInt16)HeatAmount["HeatGeneration"];
        break;
    }

    return Heat;
}

我收到 NullReferenceException。我如何获得热量?

我的代码有什么问题?谢谢。

我猜想这个特定的 属性 在您正在测试的硬件上不可用。它可能 return 在不同的硬件配置文件上。

如果您检查其中一个更可靠的属性,例如 "ChassisType" 或 "Manufacturer",您可能会发现搜索器确实按其应有的方式工作。

以下是可能可用的属性,您可以使用它们进行测试:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa387204(v=vs.85).aspx

因此,无论您在编写什么应用程序,如果 属性 返回为 null,您可能必须考虑 "unavailable" 值。 (顺便说一句,它在我目前正在测试代码的迷你塔上返回为 null,但我测试的其他属性 return 符合预期)