github.com/AlpineAIO/wails/v2@v2.0.0-beta.32.0.20240505041856-1047a8fa5fef/internal/system/operatingsystem/os_windows.go (about) 1 //go:build windows 2 3 package operatingsystem 4 5 import ( 6 "fmt" 7 8 "golang.org/x/sys/windows/registry" 9 ) 10 11 func platformInfo() (*OS, error) { 12 // Default value 13 var result OS 14 result.ID = "Unknown" 15 result.Name = "Windows" 16 result.Version = "Unknown" 17 18 // Credit: https://stackoverflow.com/a/33288328 19 // Ignore errors as it isn't a showstopper 20 key, _ := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, registry.QUERY_VALUE) 21 22 productName, _, _ := key.GetStringValue("ProductName") 23 currentBuild, _, _ := key.GetStringValue("CurrentBuildNumber") 24 displayVersion, _, _ := key.GetStringValue("DisplayVersion") 25 releaseId, _, _ := key.GetStringValue("ReleaseId") 26 27 result.Name = productName 28 result.Version = fmt.Sprintf("%s (Build: %s)", releaseId, currentBuild) 29 result.ID = displayVersion 30 31 return &result, key.Close() 32 }