wmi c# – WMI给出错误的电压读数

所以我用WPF,C#和WMI编写了一个程序来收集计算机的规格,然后将它放在SourceForge上,因为它对我没用。
我很快发现SoftPedia已经把它拿起来了,并且在截图中注意到电压读数出错了。 这是从他们的页面中划出的图像:

http://sofzh.miximages.com/c%23/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位置1,则0-6位包含电压乘以10.如果未设置第8位,则VoltageCaps中的位设置表示电压值。 仅当SMBIOS指定电压值时,才会设置CurrentVoltage。

这意味着如果在使用0x80屏蔽时读取为0 ,则应使用VoltageCaps的值将电压“置”为VoltageCaps的3个列出的值之一,除非查询结果为NULL ,在这种情况下电压不明。