前两篇文章分别介绍了在python中通过访问 OpenHardwareMonitorLib.dll 和 LibreHardwareMonitorLib.dll 获取电脑硬件信息,虽然代码已经沟简单,但是还是有人觉得不够,博主采用c# 重写了一个dll库进一步简化的操作,并将输出标准化为字典以方便python读取数据。最后,在python调用OpenHardwareMonitorLib.dll获取电脑硬件信息仅需以下代码:
import os
import clr
import win32api
# 载入私有 Dll
clr.AddReference(os.getcwd() + r'\windll\pyohm.dll')
# 引用并实例化
from pyohm import CPUStatus, RAMStatus, HDDStatus, AllHardwareStatus
cpu_sts = CPUStatus() # 仅演示其中一实例
win32api.Sleep(1000)
sensors = cpu_sts.GetAllSensorData()
print(sensors)
明显可以看出来,用起来将更方便,且只需要将pyohm.dll和OpenHardwareMonitorLib.dll放在同一目录中即可,输出更是方便的python字典格式,以上述代码为例:
{
"CPU_Load@CPU Core #1":52.2,
"CPU_Load@CPU Core #2":46.4,
"CPU_Load@CPU Core #3":42.8,
"CPU_Load@CPU Core #4":58.7,
"CPU_Load@CPU Total":50.0,
"CPU_Temperature@CPU Core #1":79.0,
"CPU_Temperature@CPU Core #2":96.0,
"CPU_Temperature@CPU Core #3":81.0,
"CPU_Temperature@CPU Core #4":95.0,
"CPU_Temperature@CPU Package":98.0,
"CPU_Clock@CPU Core #1":3003.4,
"CPU_Clock@CPU Core #2":3103.6,
"CPU_Clock@CPU Core #3":3103.6,
"CPU_Clock@CPU Core #4":3303.8,
"CPU_Power@CPU Package":24.4,
"CPU_Power@CPU Cores":20.1,
"CPU_Power@CPU Graphics":0.0,
"CPU_Power@CPU DRAM":0.0,
"CPU_Clock@Bus Speed":100.1
}