WMI查询返回硬盘温度为0,如何解决?

时间:2016-10-13 19:55:33

标签: c# wmi wmi-query temperature

我无法使用WMI查询从我的应用程序中的某个硬盘驱动器中获取正确的温度,不知何故,我的两个硬盘驱动器中的一个得到0作为温度,而另一个返回常规温度,如34摄氏度。

这是我的方法:

public static void GetTemps()
    {
        const byte TEMPERATURE_ATTRIBUTE = 194; 
        try
        {
            int counter = 1;
            ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_ATAPISmartData");
            foreach (ManagementObject queryObj in searcher.Get())
            {
                byte[] arrVendorSpecific = (byte[])queryObj["VendorSpecific"];
                System.Windows.Forms.MessageBox.Show("DRIVE: " + (counter + ("=" + arrVendorSpecific[TEMPERATURE_ATTRIBUTE + 5])));
                counter++;
            }
        }
        catch (ManagementException err)
        {
            System.Windows.Forms.MessageBox.Show(("An error has occurred: " + err.Message));
        }

也许最奇怪的部分是,这段代码不久前曾用过,虽然它时不时会出现0。

0 个答案:

没有答案