使用WMI检测硬盘温度参数出错
本帖最后由 jshzp 于 2011-08-29 15:30:03 编辑 我在使用WMI获取硬盘SMART数据,进而检测硬盘温度时,出错,错误消息为:不受支持。代码如下:
try
{
var searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_ATAPISmartData");
foreach (ManagementObject queryObj in searcher.Get())//执行到in时出错,消息:“不受支持”
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("MSStorageDriver_ATAPISmartData instance");
Console.WriteLine("-----------------------------------");
var arrVendorSpecific = (byte[])queryObj.GetPropertyValue("VendorSpecific"); // Create SMART data from 'vendor specific' array
var d = new SmartData(arrVendorSpecific);
foreach (var b in d.Attributes)
{
Console.Write("{0} :{1} : ", b.AttributeType, b.Value);
foreach (byte vendorByte in b.VendorData)
{
Console.Write("{0:x} ", vendorByte);
}
Console.WriteLine();
Console.ReadLine();
}
}
}
catch (ManagementException e)
{
Console.WriteLine("An error occurred while querying for WMI data: " + e.Message);
}
接着,我对比使用了Everest软件,可以检测到硬盘温度。从而可以排除我的机器硬件不支持的可能性。是哪儿的问题呢?谢谢指教!
[解决办法]
硬盘有很多种,传感器也有很多种。WMI识别不了你那种硬盘很正常。这种情况类似于某些显卡不装驱动照用,只不过速度慢点。