feat(hardware): 自 go-hua 迁入硬件信息采集与变更检测
- WMI 采集主板/BIOS/显卡/内存/CPU/硬盘等 11 类设备 + 变更比对 - 新增依赖 gopsutil/yusufpapurcu/wmi, 附测试、例程与 README
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
// hardware 包示例:读取硬件信息(WMI)与硬件变更检测(Windows)
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"git.zeroonesoft.cn/golib/zogo/hardware"
|
||||
)
|
||||
|
||||
func main() {
|
||||
hw, err := hardware.GetHardwareInfo()
|
||||
if err != nil {
|
||||
fmt.Println("获取失败:", err)
|
||||
return
|
||||
}
|
||||
|
||||
for _, p := range hw.Processor {
|
||||
fmt.Printf("CPU: %s (物理核心 %d, 逻辑处理器 %d)\n", p.Name, p.NumberOfCores, p.NumberOfLogicalProcessors)
|
||||
}
|
||||
for _, m := range hw.PhysicalMemory {
|
||||
fmt.Printf("内存: %s 容量 %d MB 速率 %d MHz 序列号 %s\n", m.Manufacturer, m.Capacity/1024/1024, m.Speed, m.SerialNumber)
|
||||
}
|
||||
for _, d := range hw.DiskDrive {
|
||||
fmt.Printf("硬盘: %s 容量 %.0f GB 接口 %s\n", d.Caption, float64(d.Size)/1024/1024/1024, d.InterfaceType)
|
||||
}
|
||||
for _, v := range hw.VideoController {
|
||||
fmt.Printf("显卡: %s 分辨率 %dx%d@%dHz 显存 %.0f MB\n",
|
||||
v.Name, v.CurrentHorizontalResolution, v.CurrentVerticalResolution, v.CurrentRefreshRate, float64(v.AdapterRAM)/1024/1024)
|
||||
}
|
||||
for _, b := range hw.BaseBoard {
|
||||
fmt.Printf("主板: %s %s\n", b.Manufacturer, b.Product)
|
||||
}
|
||||
|
||||
// 硬件变更检测:与上次采集结果对比(返回 true 表示硬件发生变化)
|
||||
fmt.Println("内存是否变更:", hardware.CheckPhysicalMemoryChanged(hw.PhysicalMemory, hw.PhysicalMemory))
|
||||
fmt.Println("CPU 是否变更:", hardware.CheckProcessorChanged(hw.Processor, hw.Processor))
|
||||
fmt.Println("硬盘是否变更:", hardware.CheckDiskDriveChanged(hw.DiskDrive, hw.DiskDrive))
|
||||
}
|
||||
Reference in New Issue
Block a user