在C#中讀取CPU、硬盤和內(nèi)存溫度的完整代碼
前言
系統(tǒng)監(jiān)控工具或性能分析應(yīng)用時,實(shí)時獲取硬件信息(如 CPU、硬盤和內(nèi)存的溫度)是一個常見且重要的需求。然而,.NET Framework 或 .NET Core 并未提供直接訪問硬件溫度的內(nèi)置支持。為了實(shí)現(xiàn)這一功能,我們可以借助開源庫 Open Hardware Monitor 來完成硬件信息的讀取。
本文將詳細(xì)介紹如何在 C# 項(xiàng)目中集成并使用 Open Hardware Monitor 庫,以實(shí)現(xiàn)對 CPU、硬盤以及內(nèi)存溫度的監(jiān)控,并提供完整的示例代碼。
一、準(zhǔn)備工作
要使用 Open Hardware Monitor,首先需要從其 GitHub 官方頁面 下載庫文件。下載完成后,你會獲得一個 .dll 文件,這是我們將要在 C# 項(xiàng)目中引用的核心庫。
注意:確保下載的版本與你的項(xiàng)目目標(biāo)框架兼容(如 .NET Framework 4.x 或 .NET Core/.NET 5+)。
二、添加引用
在 Visual Studio 中為項(xiàng)目添加 Open Hardware Monitor 引用的步驟如下:
1、右鍵點(diǎn)擊解決方案資源管理器中的項(xiàng)目名。
2、選擇"添加" -> "引用"。
3、在彈出的窗口中選擇"瀏覽",然后定位到你下載的 OpenHardwareMonitorLib.dll 文件。
4、選中該 DLL 文件,點(diǎn)擊"添加"。
5、確認(rèn)添加引用操作。
三、讀取硬件溫度
下面是一個完整的 C# 示例程序,演示如何使用 Open Hardware Monitor 獲取 CPU、硬盤和內(nèi)存的溫度信息:
using System;
using OpenHardwareMonitor.Hardware;
namespace HardwareTemperatureMonitor
{
class Program
{
static void Main(string[] args)
{
Computer computer = new Computer
{
CPUEnabled = true, // 啟用CPU監(jiān)控
HDDEnabled = true, // 啟用硬盤監(jiān)控
RAMEnabled = true // 啟用內(nèi)存監(jiān)控(注意:大多數(shù)內(nèi)存模塊無溫度傳感器)
};
computer.Open(); // 開始監(jiān)控
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(); // 結(jié)束監(jiān)控
}
}
}

上圖展示了程序運(yùn)行后輸出的硬件溫度信息。
該代碼通過以下步驟實(shí)現(xiàn)了溫度讀取:
1、創(chuàng)建一個 Computer 實(shí)例,并啟用 CPU、硬盤和內(nèi)存的監(jiān)控。
2、調(diào)用 computer.Open() 啟動硬件監(jiān)控。
3、遍歷所有硬件設(shè)備及其傳感器,篩選出類型為 Temperature 的傳感器。
4、輸出每個傳感器對應(yīng)的硬件名稱及當(dāng)前溫度值。
5、最后調(diào)用 computer.Close() 關(guān)閉監(jiān)控。
四、注意事項(xiàng)
管理員權(quán)限:某些系統(tǒng)下需要以管理員身份運(yùn)行程序,以便訪問底層硬件信息。
內(nèi)存溫度限制:大多數(shù)內(nèi)存模塊并不包含溫度傳感器,因此可能無法獲取內(nèi)存溫度數(shù)據(jù)。
兼容性檢查:確保所使用的 Open Hardware Monitor 版本與你的項(xiàng)目目標(biāo)框架兼容,避免出現(xiàn)運(yùn)行時異常。
總結(jié)
通過集成 Open Hardware Monitor 庫,我們可以在 C# 中輕松實(shí)現(xiàn)對硬件溫度的監(jiān)控功能。盡管 .NET 本身并未提供直接訪問硬件信息的 API,但借助第三方開源庫的支持,開發(fā)者依然可以構(gòu)建強(qiáng)大的系統(tǒng)監(jiān)控和性能分析工具。
不管是用于服務(wù)器健康監(jiān)控、游戲性能優(yōu)化,還是個人電腦狀態(tài)查看,這項(xiàng)技術(shù)都具有廣泛的應(yīng)用價值。掌握此類硬件交互技巧,有助于提升軟件的功能性和用戶體驗(yàn)。
以上就是在C#中讀取CPU、硬盤和內(nèi)存溫度的完整代碼的詳細(xì)內(nèi)容,更多關(guān)于C#讀取CPU、硬盤和內(nèi)存溫度的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
基于C#實(shí)現(xiàn)一個最簡單的HTTP服務(wù)器實(shí)例
這篇文章主要介紹了基于C#實(shí)現(xiàn)一個最簡單的HTTP服務(wù)器的方法,詳細(xì)分析了http服務(wù)器的實(shí)現(xiàn)原理與相關(guān)技巧,以及對應(yīng)的注意事項(xiàng),需要的朋友可以參考下2014-12-12
c#調(diào)用arcgis地圖rest服務(wù)示例詳解(arcgis地圖輸出)
ArcGIS REST API提供了簡單、開放的接口來訪問和使用ArcGIS Server發(fā)布的服務(wù)。使用ArcGIS REST API通過URL可以獲取和操作每一個服務(wù)中的所有資源和操作2013-12-12
C#調(diào)用C++動態(tài)庫接口函數(shù)和回調(diào)函數(shù)方法
這篇文章主要介紹了C#調(diào)用C++動態(tài)庫接口函數(shù)和回調(diào)函數(shù)方法,通過C++端編寫接口展開內(nèi)容,文章介紹詳細(xì)具有一定的參考價值,需要的小伙伴可以參考一下2022-03-03
關(guān)于C#生成MongoDB中ObjectId的實(shí)現(xiàn)方法
本篇文章小編為大家介紹,關(guān)于C#生成MongoDB中ObjectId的實(shí)現(xiàn)方法。需要的朋友參考下2013-04-04
C#中使用jieba.NET、WordCloudSharp制作詞云圖的步驟
之前一篇文章介紹的是使用Python的jieba、wordcloud的庫生成詞云圖,本文則介紹在C#中如何使用jieba.NET、WordCloudSharp庫生成詞云圖,感興趣的朋友一起看看吧2021-07-07

