所以我用WPF,C#和WMI编写了一个程序来收集计算机的规格,然后将它放在SourceForge上,因为它对我没用。 我很快发现SoftPedia已经把它拿起来了,并在截图中注意到电压读数出错了。这张图片来自他们的页面:
http://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的操作。
如果是后者,请说明如何操作,谢谢。
答案 0 :(得分:2)
基于Win32_Processor类的文档:
处理器的电压。如果第8位置1,则0-6位包含电压乘以10.如果第8位未置1,则VoltageCaps中的位设置代表电压值。仅当SMBIOS指定电压值时,才会设置CurrentVoltage。
这意味着,如果在使用0
屏蔽时显示为0x80
,那么您应该使用VoltageCaps
中的值来“声明”电压作为列出的3个值之一VoltageCaps
,除非查询结果为NULL
,在这种情况下电压未知。