当前位置: 首页 > news >正文

C#使用 OpenHardwareMonitor获取CPU或显卡温度、使用率、时钟频率相关方式

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

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

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

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

引用–>添加引用—>浏览(选择文件)–>确定
在这里插入图片描述
2. 添加头文件

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

  1. 添加相关代码,我这边就将整个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);}}
}
http://www.lryc.cn/news/274813.html

相关文章:

  • K8S--- volumesvolumeMount
  • AntV-G6 -- 将G6图表应用到项目中
  • 第二百五十回
  • 如何把硬盘(分区)一分为二?重装系统的小伙伴不可不看
  • 【AI视野·今日NLP 自然语言处理论文速览 第六十六期】Tue, 31 Oct 2023
  • 解决Canvas画图清晰度问题
  • zookeeper经典应用场景之分布式锁
  • 红队专题-Web安全/渗透测试-文件上传/下载/包含
  • 安装阿里云CLI之配置阿里云凭证信息
  • 阿里云和腾讯云2核2G3M服务器上传速度多少?
  • Python中的cls语法
  • 【Java】java -jar 读取jar包之外的yml
  • 遥感影像-语义分割数据集:山体滑坡数据集详细介绍及训练样本处理流程
  • ubuntu 22.04 安装r-base时缺少r-recommended
  • HarmonOS 通用组件(Button)
  • 代码随想录算法训练DAY22|二叉树8
  • 如何解决跨域问题
  • Typora 编辑器 讲解 包括使用方式 快捷键 附带下载地址 (免费破解)
  • 16-Echarts简化系列之:平行坐标系 parallel 和 parallelAxis 坐标轴
  • SqlServer内存使用情况
  • 谈谈我的三次考研经历
  • 红队打靶练习:SAR: 1
  • WSL 与真实 linux 环境区别有多大?
  • Springboot和Spring有什么区别
  • 创建Qt项目
  • 钢铁企业电力设计手册(上下册)总目录
  • Activemq存储KahaDb详解
  • 嵌入式C语言--ROMRAM相关概念(RO-data、RW-data、ZI-data的解释)
  • 用友GRP-U8 ufgovbank.class XXE漏洞复现
  • Vue2 - computed 和 method 的原理区别