// 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)) }