C#获取硬件温度

using System;
using System.Linq;
using LibreHardwareMonitor.Hardware;

namespace VdsHealthDegree
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow
    {
        public MainWindow()
        {
            InitializeComponent();
            Computer computer = new Computer
            {
                IsCpuEnabled = true,
                IsGpuEnabled = true,
                IsStorageEnabled = true,
                IsMotherboardEnabled = true,
                IsControllerEnabled = true
            };

            computer.Open();

            foreach (var hardware in computer.Hardware)
            {
                Console.WriteLine("Hardware: {0}", hardware.Name);
                UpdateHardware(hardware);
            }

            computer.Close();
        }

        public static void UpdateHardware(IHardware hardware)
        {
            hardware.Update();

            foreach (var subHardware in hardware.SubHardware)
            {
                UpdateHardware(subHardware);
            }

            foreach (var sensor in hardware.Sensors)
            {
                switch (sensor.SensorType)
                {
                    case SensorType.Temperature:
                        Console.WriteLine("Temperature Sensor: {0} - Value: {1} °C", sensor.Name, sensor.Value);
                        break;
                    case SensorType.Fan:
                        Console.WriteLine("Fan Sensor: {0} - Value: {1} RPM", sensor.Name, sensor.Value);
                        break;
                }
            }
        }

        // public void GetHardwareStatus()
        // {
        //     Computer myComputer = new Computer();
        //     // 添加要监控的硬件,若不添加,默认监控所有
        //     // myComputer.OpenHardwareMonitor.Hardware.ComputerBase.HardwareAdded += Hardware_Added;
        //     myComputer.CPUEnabled = true;
        //     myComputer.GPUEnabled = true;
        //     myComputer.HDDEnabled = true;
        //     myComputer.MainboardEnabled = true;
        //
        //     myComputer.Open();
        //
        //     // 等待数据更新
        //     while (true)
        //     {
        //         foreach (var hardwareItem in myComputer.Hardware)
        //         {
        //             if (hardwareItem.HardwareType == HardwareType.CPU)
        //             {
        //                 Console.WriteLine("CPU Temperature: " + hardwareItem.Sensors[(int)SensorType.Temperature].Value);
        //                 // 获取CPU风扇转速
        //                 var fanSpeed = hardwareItem.Sensors.FirstOrDefault(s => s.SensorType == SensorType.Fan);
        //                 if (fanSpeed != null)
        //                     Console.WriteLine("CPU Fan Speed: " + fanSpeed.Value);
        //             }
        //             else if (hardwareItem.HardwareType == HardwareType.GpuNvidia || hardwareItem.HardwareType == HardwareType.GpuAti)
        //             {
        //                 Console.WriteLine("GPU Temperature: " + hardwareItem.Sensors[(int)SensorType.Temperature].Value);
        //                 // 类似地获取GPU风扇转速
        //             }
        //             else if (hardwareItem.HardwareType == HardwareType.HDD)
        //             {
        //                 // 注意:硬盘通常不直接报告温度,这可能需要特定的SMART属性查询
        //             }
        //             else if (hardwareItem.HardwareType == HardwareType.Mainboard)
        //             {
        //                 // 主板温度可能作为传感器之一报告
        //                 Console.WriteLine("Motherboard Temperature: " + hardwareItem.Sensors[(int)SensorType.Temperature].Value);
        //             }
        //         }
        //         // 根据需要决定是否继续循环或延时
        //         System.Threading.Thread.Sleep(1000); // 例如,每秒检查一次
        //     }
        // }

    }
}
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值