C#如何获取/读取CPU电压

我试图获得CPU电压,但没有成功。 我尝试过OpenMonitorHardware,但似乎没有电压传感器

public float GetCpuVoltage() {
        Computer computer = new Computer(){ CPUEnabled = true };
        computer.Open();
        foreach(IHardware hardware in computer.Hardware) {
            hardware.Update();
            if(hardware.HardwareType == HardwareType.CPU) {
                foreach(ISensor sensor in hardware.Sensors) {
                    if(sensor.SensorType == SensorType.Voltage) {
                        return (float)sensor.Value;
                    }
                }
            }
        }
        computer.Close();
}

If语句永远不会成立,因为它只能找到温度,功率和时钟速度传感器。

再次尝试使用Win32_Processor和Win32_Mainboard,几乎每个可能包含它的Win32_XXX都不成功。在那里,它要么没有值,要么文档是错误的/旧的,并且您可以传递的值是错误的,并且发出了错误。 我与此最接近的是这里的代码

foreach(ManagementBaseObject core in new ManagementObjectSearcher("Select * from Win32_Processor").Get()) {
    var voltage = core["CurrentVoltage"];
}

我得到的值是“ 10”,这甚至没有意义。我首先认为它可能会四舍五入,因此无论我尝试什么,它都可以将1,357向下舍入为一个,但不是稳定的10。

经过数小时的尝试,我什至不知道该怎么做,我什至尝试从Open Hardware Monitor下载源代码,因为在他们的程序中它可以工作,但是对于我来说太复杂了,无法完全指出其起源以及它们如何获得价值。

如果有人需要我拥有I5-8600k,华硕Z390 TUF GAMING-Plus,而超级IO控制器是Nuvoton NCT6798D,其中应该包含我需要的信息。

请原谅任何输入错误,并感谢您的提前帮助