c# - 如何读取硬盘温度?

标签 c# hardware-interface

是否可以使用某种 S.M.A.R.T API 或类似的东西查看硬盘温度?

我只需要温度,不需要 C# 中的其他东西

最佳答案

这是来自 article 的代码片段 希望对你有帮助

//S.M.A.R.T.  Temperature attribute
const byte TEMPERATURE_ATTRIBUTE = 194;

public List<byte> GetDriveTemp()
{
    var retval = new List<byte>();
    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;
}

关于c# - 如何读取硬盘温度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8079325/

相关文章:

c# - MVC Web API 2 中的点字符 '.' 用于 api/people/STAFF.45287 等请求

c# - 将 ShowDialog 之类的东西添加到自定义用户控件中?

c# - 确定时区是否支持夏令时

c# - List.ConvertAll 和异常

通过串行接口(interface)用c++连接到cisco路由器

c# - SignalR 连接问题 - 连接监听器无法接受任何新连接

windows - 伪造一个 RS232 串口

php - 如何像这个 QBasic 程序一样在 PHP 中读取 RS232 串口

python - 如何在 Python 中获取 mmap-ed 内存的地址?

java - 是否可以使用 Java 收集有关计算机硬件的信息?