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

问题描述 投票:3回答:1

我正在尝试获取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可能会四舍五入为1,但是无论我尝试什么,它的整数都不是10。

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

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

请原谅任何打字错误,并感谢您提前提供帮助>>

我正在尝试获取CPU电压,但没有成功。我尝试过OpenMonitorHardware,但似乎没有电压传感器公共浮动GetCpuVoltage(){Computer computer = ...

c# hardware openhardwaremonitor
1个回答
0
投票

如果您转到此页面,请先检查一下,然后继续进行,您会有所了解。

© www.soinside.com 2019 - 2024. All rights reserved.