首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用OpenHardwareMonitor获得我的图形处理器或中央处理器的风扇速度?

如何使用OpenHardwareMonitor获得我的图形处理器或中央处理器的风扇速度?
EN

Stack Overflow用户
提问于 2014-05-28 05:17:46
回答 1查看 2.1K关注 0票数 1

代码如下:

代码语言:javascript
复制
public float? cpuView(bool pause , CpuTemperature cpuTemp , Form1 f1 , List<string> myData , float? myCpuTemp , Button b1, decimal numeric)
{
    try
    {
        if (pause == true)
        {
        }
        else
        {
            Trace.WriteLine("");
            foreach (var hardwareItem in myComputer.Hardware)
            {
                if (hardwareItem.HardwareType == HardwareType.CPU)
                {
                    hardwareItem.Update();
                    foreach (IHardware subHardware in hardwareItem.SubHardware)
                    subHardware.Update();
                    foreach (var sensor in hardwareItem.Sensors)
                    {
                        cpuTemp.SetValue("sensor", sensor.Value.ToString());
                        if (sensor.SensorType == SensorType.Fan)
                        {
                            MessageBox.Show("test");
                            sensor.Hardware.Update();
                            cpuTemp.GetValue("sensor", sensor.Value.ToString());
                            if (!f1.IsDisposed)//f1.IsHandleCreated && !f1.IsDisposed)
                            {
                                Thread.Sleep(1000);
                                f1.Invoke(new Action(() => myData.Add("Cpu Temeprature --- " + sensor.Value.ToString())));
                            }
                            myCpuTemp = sensor.Value;
                            //if (sensor.Value > 60)
                            //{
                            CpulabelTemp = sensor.Value;
                            cpuSensorValues.Add(sensor.Value);
                            if (cpuSensorValues.Count == 300 && sensor.Value >= (float)numeric)                 
                            {
                                float a = ComputeStats(cpuSensorValues).Item1;
                                float b = ComputeStats(cpuSensorValues).Item2;
                                float c = ComputeStats(cpuSensorValues).Item3;
                                Logger.Write("********************************");
                                Logger.Write("CPU Minimum Temperature Is ===> " + a);
                                Logger.Write("CPU Maximum Temperature Is ===> " + b);
                                Logger.Write("CPU Average Temperature Is ===> " + c);
                                Logger.Write("********************************" + Environment.NewLine);                                           
                                cpuSensorValues = new List<float?>();
                            }
                            b1.Enabled = true;
                            //}
                            break;
                        }
                    }
                }
            }
        }
    }
    catch(Exception err)
    {
        Logger.Write("There was an exception: " + err.ToString());
    }
    return myCpuTemp;
}

在这一行中:

代码语言:javascript
复制
if (sensor.SensorType == SensorType.Fan)

取而代之的是温度。当它是温度的时候,它是工作的,没有问题。但是,一旦我把它改为风扇,以获得CPU/GPU风扇的速度,它就不会进入,它会跳过这一点,然后继续。

它永远不会到达MessageBox.Show行。

可能的问题是什么?我试着用谷歌搜索,但到目前为止还没有结果。

EN

回答 1

Stack Overflow用户

发布于 2016-03-04 06:53:38

你的问题是有条件的

代码语言:javascript
复制
if (hardwareItem.HardwareType == HardwareType.CPU)

风扇不在CPU上。您需要使用粉丝显示的适当HardwareType,可能是HardwareType.Mainboard

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23899106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档