在開(kāi)發(fā)系統(tǒng)監(jiān)控工具、診斷應(yīng)用或需要硬件信息的軟件時(shí),獲取準(zhǔn)確的系統(tǒng)硬件信息是一個(gè)基礎(chǔ)性需求。Hardware.Info
庫(kù)為C#開(kāi)發(fā)者提供了一個(gè)簡(jiǎn)單易用且功能強(qiáng)大的解決方案,讓您能夠輕松獲取系統(tǒng)的CPU、內(nèi)存、磁盤(pán)和網(wǎng)絡(luò)等硬件信息。本文將詳細(xì)介紹這個(gè)庫(kù)的使用方法,并通過(guò)豐富的示例幫助您快速上手。
什么是Hardware.Info?
Hardware.Info
是一個(gè)專(zhuān)為.NET開(kāi)發(fā)者設(shè)計(jì)的庫(kù),它封裝了獲取系統(tǒng)硬件信息的復(fù)雜過(guò)程,提供了簡(jiǎn)潔明了的API接口。無(wú)論您是開(kāi)發(fā)系統(tǒng)工具、硬件監(jiān)控應(yīng)用,還是需要在應(yīng)用中讀取硬件配置,這個(gè)庫(kù)都能滿(mǎn)足您的需求。
安裝方法
使用NuGet包管理器可以輕松安裝:
Install-Package Hardware.Info
?
或者在Visual Studio的NuGet包管理器中搜索"Hardware.Info"進(jìn)行安裝。
基本使用方法
獲取全部硬件信息
以下是一個(gè)完整示例,展示如何獲取計(jì)算機(jī)的各種硬件信息:
using Hardware.Info;
namespace AppHardware
{
internal class Program
{
static void Main(string[] args)
{
// 創(chuàng)建HardwareInfo實(shí)例
var hardwareInfo = new HardwareInfo();
// 刷新所有硬件信息
hardwareInfo.RefreshAll();
// 處理器信息
Console.WriteLine("\n處理器信息:");
foreach (var cpu in hardwareInfo.CpuList)
{
Console.WriteLine($"處理器名稱(chēng): {cpu.Name}");
Console.WriteLine($"時(shí)鐘速度: {cpu.MaxClockSpeed} MHz");
Console.WriteLine($"核心數(shù): {cpu.NumberOfCores}");
}
// 內(nèi)存信息
Console.WriteLine("\n內(nèi)存信息:");
foreach (var memory in hardwareInfo.MemoryList)
{
// 將字節(jié)轉(zhuǎn)換為GB顯示
Console.WriteLine($"內(nèi)存容量: {memory.Capacity / (1024 * 1024 * 1024)} GB");
Console.WriteLine($"內(nèi)存廠(chǎng)家: {memory.Manufacturer}");
Console.WriteLine($"內(nèi)存頻率: {memory.Speed} MHz");
}
// 磁盤(pán)信息
Console.WriteLine("\n磁盤(pán)信息:");
foreach (var disk in hardwareInfo.DriveList)
{
Console.WriteLine($"磁盤(pán)名稱(chēng): {disk.Name}");
Console.WriteLine($"總?cè)萘? {disk.Size / (1024 * 1024 * 1024)} GB");
}
// 網(wǎng)絡(luò)適配器信息
Console.WriteLine("\n網(wǎng)絡(luò)適配器信息:");
foreach (var network in hardwareInfo.NetworkAdapterList)
{
Console.WriteLine($"網(wǎng)卡名稱(chēng): {network.Name}");
Console.WriteLine($"MAC地址: {network.MACAddress}");
Console.WriteLine($"IP地址: {string.Join(", ", network.IPAddressList)}");
}
Console.ReadKey();
}
}
}

高級(jí)用法
異步刷新硬件信息
在UI應(yīng)用中,您可能需要異步獲取硬件信息以避免阻塞主線(xiàn)程:
using System.Threading.Tasks;
using Hardware.Info;
public async Task RefreshHardwareInfoAsync()
{
var hardwareInfo = new HardwareInfo();
// 異步刷新硬件信息
await Task.Run(() => hardwareInfo.RefreshAll());
// 處理獲取到的硬件信息
ProcessHardwareInfo(hardwareInfo);
}
private void ProcessHardwareInfo(HardwareInfo info)
{
// 在這里處理硬件信息
// 例如,更新UI顯示或記錄到日志
}
選擇性獲取特定硬件信息
如果您只需要特定類(lèi)型的硬件信息,可以選擇性地只刷新需要的部分,這樣可以提高性能:
using Hardware.Info;
namespace AppHardware
{
internal class Program
{
static void Main(string[] args)
{
// 創(chuàng)建HardwareInfo實(shí)例
var hardwareInfo = new HardwareInfo();
// 僅刷新CPU和內(nèi)存信息
hardwareInfo.RefreshCPUList();
hardwareInfo.RefreshMemoryList();
// 獲取CPU信息
foreach (var cpu in hardwareInfo.CpuList)
{
Console.WriteLine($"CPU: {cpu.Name}, 核心數(shù): {cpu.NumberOfCores}");
}
// 獲取內(nèi)存信息
foreach (var memory in hardwareInfo.MemoryList)
{
Console.WriteLine($"內(nèi)存: {memory.Capacity / (1024 * 1024 * 1024)} GB");
}
Console.ReadKey();
}
}
}

總結(jié)
Hardware.Info
庫(kù)為C#開(kāi)發(fā)者提供了一種簡(jiǎn)單而強(qiáng)大的方式來(lái)獲取系統(tǒng)硬件信息。通過(guò)它,您可以輕松開(kāi)發(fā)系統(tǒng)監(jiān)控工具、硬件診斷應(yīng)用或任何需要了解系統(tǒng)配置的軟件。
本文介紹了從基本用法到高級(jí)應(yīng)用的多種示例,希望能幫助您充分利用這個(gè)實(shí)用工具。無(wú)論是簡(jiǎn)單地獲取系統(tǒng)信息,還是開(kāi)發(fā)復(fù)雜的硬件監(jiān)控解決方案,Hardware.Info
都是一個(gè)理想的選擇。
閱讀原文:原文鏈接
該文章在 2025/5/19 9:59:26 編輯過(guò)