日期:2014-05-17  浏览次数:21241 次

使用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识别不了你那种硬盘很正常。这种情况类似于某些显卡不装驱动照用,只不过速度慢点。