返回 DeepSeek-Reasonix
devinfo_windows.go
根目录 / desktop / devinfo_windows.go
1 package main
2
3 import (
4 "fmt"
5 "strings"
6 "unsafe"
7
8 "golang.org/x/sys/windows"
9 "golang.org/x/sys/windows/registry"
10 )
11
12 func platformOSVersion() string {
13 v := windows.RtlGetVersion()
14 return fmt.Sprintf("Windows %d.%d build %d", v.MajorVersion, v.MinorVersion, v.BuildNumber)
15 }
16
17 func platformCPU() string {
18 k, err := registry.OpenKey(registry.LOCAL_MACHINE, `HARDWARE\DESCRIPTION\System\CentralProcessor\0`, registry.QUERY_VALUE)
19 if err != nil {
20 return ""
21 }
22 defer k.Close()
23 name, _, err := k.GetStringValue("ProcessorNameString")
24 if err != nil {
25 return ""
26 }
27 return strings.TrimSpace(name)
28 }
29
30 func platformRAMBytes() uint64 {
31 var kb uint64
32 proc := windows.NewLazySystemDLL("kernel32.dll").NewProc("GetPhysicallyInstalledSystemMemory")
33 if ret, _, _ := proc.Call(uintptr(unsafe.Pointer(&kb))); ret == 0 {
34 return 0
35 }
36 return kb * 1024
37 }
38
38 lines GO