惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
博客园 - 司徒正美
Last Week in AI
Last Week in AI
博客园 - 聂微东
Jina AI
Jina AI
月光博客
月光博客
爱范儿
爱范儿
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Hugging Face - Blog
Hugging Face - Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
T
Tailwind CSS Blog
博客园 - 【当耐特】
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
有赞技术团队
有赞技术团队
罗磊的独立博客
小众软件
小众软件
雷峰网
雷峰网
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog

博客园 - lzhdim

大展宏图 - 我的闪存 20260916 - 个人小作品更新 C#代码复杂度警示录:20个真实案例揭示如何编写更简洁、可维护的代码 C#性能杀手TOP10:你的代码中招了吗? 20260913 - 个人小作品更新 宝马Z4借壳复活!改装版Spider亮相:售价约90万、限量99台 C#开发的ScreenSaver屏保应用 - 开源研究系列文章 - 个人小作品 7个现代C#实战模式:微软精英团队都在用的高效编程技巧 25个每个开发人员都应该掌握的JavaScript 数组方法 20260831 - 个人小作品更新 C#使用SQLite数据库例子 - 开源研究系列文章 20260830 - 个人小作品更新 20260829 - 个人小作品更新 13、JavaScript事件循环机制 - JavaScript学习系列文章 首款媲美分体水冷的一体水冷!微星CORELIQUID E15 360水冷散热器评测:目前为止 锐龙9 9950X3D最强性能释放 JavaScript常见的内存泄露问题 - JavaScript学习系列文章 C#开发的颜色取色器 - 开源研究系列文章 - 个人小作品 成长环境 - 我的闪存 提高 SQL 语句执行速度的方法 JavaScript安全最佳实践 关闭iPhone一些默认设置,让iPhone更流畅 20260814 - 个人小作品更新 JavaScript对象与元编程 20260812 - 个人小作品更新 JavaScript 模块化系统 Markdown 语法完全指南 C# 通过 Windows API 实现进程内存读写操作 JavaScript 函数进阶课题 C#开发的基于钩子技术监测键鼠事件的例子 - 开源项目研究文章 JavaScript异步编程的演进
C# 中读取CPU、硬盘和内存温度
lzhdim · 2026-07-23 · via 博客园 - lzhdim

前言

系统监控工具或性能分析应用时,实时获取硬件信息(如 CPU、硬盘和内存的温度)是一个常见且重要的需求。然而,.NET Framework 或 .NET Core 并未提供直接访问硬件温度的内置支持。为了实现这一功能,我们可以借助开源库 Open Hardware Monitor 来完成硬件信息的读取。

本文将详细介绍如何在 C# 项目中集成并使用 Open Hardware Monitor 库,以实现对 CPU、硬盘以及内存温度的监控,并提供完整的示例代码。

正文

一、准备工作

要使用 Open Hardware Monitor,首先需要从其 GitHub 官方页面 下载库文件。下载完成后,你会获得一个 .dll 文件,这是我们将要在 C# 项目中引用的核心库。

注意:确保下载的版本与你的项目目标框架兼容(如 .NET Framework 4.x 或 .NET Core/.NET 5+)。

二、添加引用

在 Visual Studio 中为项目添加 Open Hardware Monitor 引用的步骤如下:

1、右键点击解决方案资源管理器中的项目名。

2、选择"添加" -> "引用"。

3、在弹出的窗口中选择"浏览",然后定位到你下载的 OpenHardwareMonitorLib.dll 文件。

4、选中该 DLL 文件,点击"添加"。

5、确认添加引用操作。

三、读取硬件温度

下面是一个完整的 C# 示例程序,演示如何使用 Open Hardware Monitor 获取 CPU、硬盘和内存的温度信息:

using System;
using OpenHardwareMonitor.Hardware;

namespaceHardwareTemperatureMonitor
{
    classProgram
    {
        static void Main(string[] args)
        {
            Computer computer = new Computer
            {
                CPUEnabled = true,   // 启用CPU监控
                HDDEnabled = true,   // 启用硬盘监控
                RAMEnabled = true    // 启用内存监控(注意:大多数内存模块无温度传感器)
            };

            computer.Open(); // 开始监控

            foreach (var hardwareItem in computer.Hardware)
            {
                hardwareItem.Update(); // 更新硬件信息
                foreach (var sensor in hardwareItem.Sensors)
                {
                    if (sensor.SensorType == SensorType.Temperature) // 检查是否为温度传感器
                    {
                        Console.WriteLine($"{hardwareItem.Name} - {sensor.Name}: {sensor.Value.GetValueOrDefault()}°C");
                    }
                }
            }

            computer.Close(); // 结束监控
        }
    }
}

上图展示了程序运行后输出的硬件温度信息。

该代码通过以下步骤实现了温度读取:

1、创建一个 Computer 实例,并启用 CPU、硬盘和内存的监控。

2、调用 computer.Open() 启动硬件监控。

3、遍历所有硬件设备及其传感器,筛选出类型为 Temperature 的传感器。

4、输出每个传感器对应的硬件名称及当前温度值。

5、最后调用 computer.Close() 关闭监控。

四、注意事项

管理员权限:某些系统下需要以管理员身份运行程序,以便访问底层硬件信息。

内存温度限制:大多数内存模块并不包含温度传感器,因此可能无法获取内存温度数据。

兼容性检查:确保所使用的 Open Hardware Monitor 版本与你的项目目标框架兼容,避免出现运行时异常。

总结

通过集成 Open Hardware Monitor 库,我们可以在 C# 中轻松实现对硬件温度的监控功能。尽管 .NET 本身并未提供直接访问硬件信息的 API,但借助第三方开源库的支持,开发者依然可以构建强大的系统监控和性能分析工具。

不管是用于服务器健康监控、游戏性能优化,还是个人电脑状态查看,这项技术都具有广泛的应用价值。掌握此类硬件交互技巧,有助于提升软件的功能性和用户体验。