C# 去获取电脑相关的基础信息,还是需要借助 外部的库,我这边尝试了自己去实现它

网上有一些信息,但不太完整,都比较零碎,这边尽量将代码完整的去展示出来

OpenHardwareMonitor获取CPU的温度和频率需要管理员权限 在没有开权限的时候就是无法使用

首先添加相关应用的dll文件

引用–>添加引用—>浏览(选择文件)–>确定 2. 添加头文件

using System.IO; using OpenHardwareMonitor.Hardware; using System.Threading;

添加相关代码,我这边就将整个form的代码贴上来了,这样也方便查看

代码中注释掉的部分是循环显示的一个循环逻辑

代码的功能可以将主板的名称显示出来,还有将第一个CPU的情况显示,可以根据实际情况进行修改。

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Diagnostics;

using System.IO;

using OpenHardwareMonitor.Hardware;

using System.Threading;

namespace cpuGpu

{

public partial class Form1 : Form

{

public class UpdateVisitor : IVisitor

{

public void VisitComputer(IComputer computer)

{

computer.Traverse(this);

}

public void VisitHardware(IHardware hardware)

{

hardware.Update();

foreach (IHardware subHardware in hardware.SubHardware)

subHardware.Accept(this);

}

public void VisitSensor(ISensor sensor) { }

public void VisitParameter(IParameter parameter) { }

}

public Form1()

{

InitializeComponent();

}

private void button2_Click(object sender, EventArgs e)

{

UpdateVisitor updateVisitor = new UpdateVisitor();

Computer myComputer = new Computer();

myComputer.Open();

//启动主板监测

myComputer.MainboardEnabled = true;

//启动CPU监测

myComputer.CPUEnabled = true;

//启动内存监测

myComputer.RAMEnabled = true;

//启动GPU监测

myComputer.GPUEnabled = true;

//启动风扇监测

myComputer.FanControllerEnabled = true;

//启动硬盘监测

myComputer.HDDEnabled = true;

do

{

myComputer.Accept(updateVisitor);

Console.Clear();

//foreach (var hardwareItem in myComputer.Hardware)

//{

// Console.WriteLine(hardwareItem.HardwareType + "型号是:" + hardwareItem.Name);

// foreach (var sensor in hardwareItem.Sensors)

// {

// Console.WriteLine(sensor.Name + "的" + sensor.SensorType + "是" + sensor.Value);

// }

//}

string BroadName = myComputer.Hardware[0].Name.ToString();

string CPUdata = myComputer.Hardware[1].Sensors[0].Value.ToString();

System.Threading.Thread.Sleep(1000);

} while (true);

}

}

}

相关文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: