当前位置: 首页 > 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);
        }
    }
}

相关文章:

  • 运维系列Nginx:设置黑/白名单IP限制
  • spring 之 TransactionManager使用详解
  • 线性代数笔记6 1.6
  • 外包干了3个多月,技术退步明显。。。。。
  • 什么是跨链桥?
  • test coverate-04-测试覆盖率 Cobertura Cobertura/emma/jacoco 的差异对比?
  • 高德地图信息窗体设置
  • UE5 VR版增强输入初体验 官方模板学习
  • 『番外篇六』SwiftUI 取得任意视图全局位置的三种方法
  • 【2024系统架构设计】 系统架构设计师第二版-信息系统架构设计理论与实践
  • SVM 保存和加载模型参数
  • 【数据结构】八大排序之快速排序算法
  • Android设备sdcard/tf卡不识别在电脑上可以
  • 可变参数应用(C++并发编程中的joining_thread代码)
  • 解决Android AAPT: error: resource android:attr/lStar not found. 问题
  • CMake入门教程【基础篇】列表操作(list)
  • 超简单|配图详细| 双系统Ubuntu22.04 系统磁盘扩容
  • 旅游平台网页前后端
  • Selenium教程04:鼠标+键盘网页的模拟操作
  • 基于SpringBoot的物流管理系统
  • 讲座|消逝之钟:《红楼梦》与《布登勃洛克一家》中的时间观
  • 新华时评:让医德医风建设为健康中国护航
  • 国防部:中方愿与俄方不断增强两军关系良好发展势头
  • 演员黄晓明、金世佳进入上海戏剧学院2025年博士研究生复试名单
  • 王毅会见巴西外长维埃拉、总统首席特别顾问阿莫林
  • 飙升至熔断,巴基斯坦股市两大股指收盘涨逾9%