ltrtt 2020-02-26 22:12 采纳率: 0%
浏览 798

请问OpenHardwareMonitor如何获取CPU风扇转速?

使用OpenHardwareMonitor能正常读到CPU温度,负载等参数,但是一直找不到风扇转速在哪里
我使用的是这种方式:

 for (int i = 0; i < computer.Hardware.Length; i++)
 {
                //查找硬件类型为CPU
     if (computer.Hardware[i].HardwareType == HardwareType.CPU)
    {
        for (int j = 0; j < computer.Hardware[i].Sensors.Length; j++)
        {
            //找到温度传感器
            if (computer.Hardware[i].Sensors[j].SensorType == SensorType.Temperature && computer.Hardware[i].Sensors[j].Name == "CPU Package")
            {
                labCPUTemp.Text = computer.Hardware[i].Sensors[j].Value.ToString();
            }
            if (computer.Hardware[i].Sensors[j].SensorType == SensorType.Fan)
            {
                labCPUTemp.Text = computer.Hardware[i].Sensors[j].Value.ToString();
            }
        }
    }
}

  • 写回答

2条回答 默认 最新

  • 你知我知皆知 2024-07-25 19:44
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要获取CPU风扇的转速,您需要访问OpenHardwareMonitor(OHM)提供的API来查询风扇的速度。以下是如何在C#中实现这一目标的步骤:

    1. 添加必要的引用:首先,确保您的项目已添加了OpenHardwareMonitor.NET库。可以通过NuGet包管理器安装。

    2. 创建一个名为CPUFanSpeed.cs的新文件,并导入所需的命名空间:

    using OpenHardwareMonitor;
    using System;
    
    1. 使用OpenHardwareMonitor.NET API创建一个新的硬件设备实例并设置其名称和类型:
    var cpuFan = new CPU()
    {
        Name = "CPU Fan",
        Type = HardwareType.CPU,
    };
    
    1. 获取硬件设备的所有传感器:
    cpuFan.Sensors.ForEach(sensor =>
    {
        Console.WriteLine($"Sensor: {sensor.Name}, Type: {sensor.Type}");
    });
    
    1. 现在,您可以遍历所有传感器以查找风扇传感器:
    cpuFan.Sensors.Where(sensor => sensor.SensorType == SensorType.Fan).ToList().ForEach(fanSensor =>
    {
        Console.WriteLine($"FAN Speed: {fanSensor.Value}");
    });
    
    1. 运行程序并查看输出:
    Console.WriteLine("Running...");
    System.Threading.Thread.Sleep(500);
    

    现在,您应该能够在控制台看到CPU风扇的速度。请注意,这可能因计算机配置而异,因此您可能需要调整代码以适应您的具体需求。

    评论

报告相同问题?