如何阅读HardDisk温度?

是否可以通过一些SMART API或类似的东西来查看Harrdisk温度?

我只想要临时,C#中没有别的东西

这是本文的代码片段希望它有所帮助

//SMART Temperature attritube const byte TEMPERATURE_ATTRIBUTE = 194; public List GetDriveTemp() { List retval = new List(); try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_ATAPISmartData"); //loop through all the hard disks foreach (ManagementObject queryObj in searcher.Get()) { byte[] arrVendorSpecific = (byte[])queryObj.GetPropertyValue("VendorSpecific"); //Find the temperature attribute int tempIndex = Array.IndexOf(arrVendorSpecific, TEMPERATURE_ATTRIBUTE); retval.Add(arrVendorSpecific[tempIndex + 5]); } } catch (ManagementException err) { Console.WriteLine("An error occurred while querying for WMI data: " + err.Message); } return retval; } 

使用VMI和MSStorageDriver_ATAPISmartData获取VendorSpecific字节数组,115字节数是温度。 为什么115? 更多这里 。

代码部分由VMI Code Creator生成

 ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_ATAPISmartData"); foreach (ManagementObject queryObj in searcher.Get()) { if (queryObj["VendorSpecific"] != null) { byte[] arrVendorSpecific = (byte[])(queryObj["VendorSpecific"]); string temp = arrVendorSpecific[115].ToString(); } }