给出不正确的电压读数

本文关键字:电压 不正确 | 更新日期: 2023-09-27 18:18:08

所以我用WPF, c#和WMI做了一个程序,作为一个小项目来收集计算机的规格,并把它放在SourceForge上,因为它对我来说没什么用。
我很快发现SoftPedia发现了它,并在截图中注意到电压读数有一个错误。这是从他们的页面上截取的图片:

https://i.stack.imgur.com/8QpBq.png

此时我使用"CurrentVoltage"输入电压,例如

foreach (var item in new ManagementObjectSearcher("Select * from Win32_Processor").Get())
{
    labelName.Content = (decimal.Parse(item["CurrentVoltage"].ToString()) / 10).ToString() + " v";
}

如图所示,它在图片中的读数为0v。我想知道我是否需要将"CurrentVoltage"切换到"VoltageCaps",或者我是否需要直接读取SMBIOS。

如果是后者,请说明如何操作,谢谢。

给出不正确的电压读数

基于Win32_Processor类的文档:

处理器电压。如果设置了第8位,0 ~ 6位是电压乘以10。如果第8位没有设置,则VoltageCaps中的位设置代表电压值。

当SMBIOS指定电压值时,才会设置CurrentVoltage。

这意味着如果它被0x80屏蔽时读取为0,那么您应该使用VoltageCaps的值来"状态"电压作为VoltageCaps列出的3个值之一,除非查询的结果是NULL,在这种情况下电压是未知的。