首先需要下载 OpenHardwareMonitorServer 这是一个基于OpenHardwareMonitor 的 Web 服务器。可以让任何语言都可以获取硬件信息和值,OpenHardwareMonitorServer 是没有UI界面的因此它可以当成控制台程序使用。
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ffeacec42d3541b2b2687ac41796604c.png)
该程序可用参数如下
参数:需要管理员权限
-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 | 显存相关数据(总、已用、剩余) |