- WMI 采集主板/BIOS/显卡/内存/CPU/硬盘等 11 类设备 + 变更比对 - 新增依赖 gopsutil/yusufpapurcu/wmi, 附测试、例程与 README
39 lines
1.5 KiB
Go
39 lines
1.5 KiB
Go
// 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))
|
|
}
|