首先需要下载 OpenHardwareMonitorServer 这是一个基于OpenHardwareMonitor 的 Web 服务器。可以让任何语言都可以获取硬件信息和值,OpenHardwareMonitorServer 是没有UI界面的因此它可以当成控制台程序使用。
该程序可用参数如下
参数:需要管理员权限 -p 指定WEB端口并开启服务器(默认8080) –console 以控制台Json格式返回硬件信息与WEB方式冲突(默认false) –group 以群组格式返回硬件信息(默认true) –mainboard 启用主板监控 (默认true) –cpu 启用CPU监控 (默认true) –ram 启用内存监控 (默认true) –gpu 启用GPU监控 (默认true) –fan 启用风扇控制器监控 (默认true) –hdd 启用硬盘监控 (默认true) –network 启用网络监控 (默认true)
解析JSON 实体类 Kotlin:
data class ExampleGenerate ( val mainboard: List< Hardware> , val cpu: List< Hardware> , val ram: List< Hardware> , val gpuNvidia: List< Hardware> , val network: List< Hardware> , val hdd: List< Hardware>
) data class Hardware ( val hardwareType: Long, val hasModelSpecificRegisters: Boolean? , val hasTimeStampCounter: Boolean? , val timeStampCounterFrequency: Double? , val subHardware: List< Any? > , val parent: Any? = null , val sensors: List< Sensor> , val name: String, val identifier: String,
) data class Sensor ( val sensorType: Long, val identifier: String, val name: String, val index: Long, val isDefaultHidden: Boolean, val value: Double, val min: Double, val max: Double, val control: Any? = null
)
它可以获取的硬件信息如下:
这份JSON接口文档是过时的仅作为参考
1. 接口信息
项目 说明 请求 URL http://127.0.0.1:8080/ 请求方式 HTTP GET 返回格式 JSON 数据
2. JSON 数据整体结构
顶层键 描述 Mainboard 主板信息 CPU CPU(中央处理器)信息 RAM 内存(RAM)数据 GpuNvidia NVIDIA 显卡信息 HDD 硬盘(磁盘)信息
3. 主板(Mainboard)数据结构
字段 类型 说明 Name 字符串 主板名称(例如:Lenovo LNVNB161216) Identifier 字符串 设备唯一标识符(例如:/mainboard) HardwareType 数字 硬件类型编号(0 表示主板) Parent null 父设备信息(主板一般无父设备) SubHardware 数组 子硬件列表(目前为空数组) Sensors 数组 传感器数据列表(目前为空数组)
4. CPU 数据结构
4.1 CPU 基本信息
字段 类型 说明 Name 字符串 CPU 名称(例如:AMD Ryzen 5 5600H) Identifier 字符串 设备标识符(例如:/amdcpu/0) HardwareType 数字 硬件类型编号(2 表示 CPU) HasModelSpecificRegisters 布尔 是否支持特定寄存器 HasTimeStampCounter 布尔 是否支持时间戳计数器 TimeStampCounterFrequency 数值 时间戳计数器频率(例如:3293.7214576025804) SubHardware 数组 子硬件列表(目前为空数组) Sensors 数组 CPU 相关的传感器数据(包括负载、功率、温度、时钟等)
4.2 CPU 传感器字段说明
字段 类型 说明 SensorType 数字 传感器类型编号(如 1:时钟、2:温度、3:负载、9:功率) Identifier 字符串 传感器唯一标识符(例如:/amdcpu/0/load/1 表示第 1 核负载) Name 字符串 传感器名称(例如:CPU Core #1) Index 数值 传感器索引,用于区分同类传感器 IsDefaultHidden 布尔 是否默认隐藏(前端显示时可依据此字段过滤) Value 数值 当前传感器读数(例如:负载百分比、功率数值、温度等) Min 数值 传感器最小可能值 Max 数值 传感器最大可能值 Control 任意 控制字段,目前一般为 null,可用于未来扩展(如风扇控制等)
5. 内存(RAM)数据结构
字段 类型 说明 Name 字符串 内存名称(例如:Generic Memory) Identifier 字符串 设备标识符(例如:/ram) HardwareType 数字 硬件类型编号(3 表示内存) SubHardware 数组 子硬件列表(目前为空数组) Sensors 数组 内存传感器数据,包含负载、已使用内存和可用内存信息
内存传感器说明
传感器字段 SensorType 数值 说明 内存负载 3 内存整体使用负载(百分比) Used Memory 10 已使用内存(数值,单位视情况而定) Available Memory 10 可用内存(数值,单位视情况而定)
6. NVIDIA 显卡(GpuNvidia)数据结构
字段 类型 说明 Name 字符串 显卡名称(例如:NVIDIA NVIDIA GeForce RTX 3050 Ti Laptop GPU) Identifier 字符串 设备标识符(例如:/nvidiagpu/0) HardwareType 数字 硬件类型编号(4 表示显卡) SubHardware 数组 子硬件列表(目前为空数组) Sensors 数组 显卡传感器数据,包含温度、核心时钟、显存频率、负载和显存使用信息
显卡传感器说明(部分)
传感器字段 SensorType 数值 说明 GPU Core 2 GPU 核心温度(摄氏度) GPU Core 1 GPU 核心时钟频率(MHz) GPU Memory 1 GPU 显存时钟频率(MHz) GPU Load 3 GPU 负载(百分比) GPU Memory 11 显存使用数据(总、已用、剩余)
7. 硬盘(HDD)数据结构
字段 类型 说明 Name 字符串 硬盘名称(例如:Generic Hard Disk) Identifier 字符串 设备标识符(例如:/hdd/0、/hdd/1 等) HardwareType 数字 硬件类型编号(8 表示硬盘) SubHardware 数组 子硬件列表(目前为空数组) Sensors 数组 硬盘传感器数据,主要关注磁盘已使用空间百分比信息
硬盘传感器说明
传感器字段 SensorType 数值 说明 Used Space 3 硬盘已使用空间百分比
8. 传感器类型对应说明
SensorType 数值 描述说明 1 时钟频率(单位:MHz) 2 温度(单位:摄氏度) 3 负载或使用率(百分比) 9 功率(单位:瓦特) 10 内存相关数据(内存使用情况) 11 显存相关数据(总、已用、剩余)