mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-03 04:42:00 +08:00
34 lines
894 B
Go
34 lines
894 B
Go
package operatingsystem
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"golang.org/x/sys/windows/registry"
|
|
)
|
|
|
|
func platformInfo() (*OS, error) {
|
|
// Default value
|
|
var result OS
|
|
result.ID = "Unknown"
|
|
result.Name = "Windows"
|
|
result.Version = "Unknown"
|
|
|
|
// Credit: https://stackoverflow.com/a/33288328
|
|
// Ignore errors as it isn't a showstopper
|
|
key, _ := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, registry.QUERY_VALUE)
|
|
|
|
defer key.Close()
|
|
|
|
// Ignore errors as it isn't a showstopper
|
|
productName, _, _ := key.GetStringValue("ProductName")
|
|
currentBuild, _, _ := key.GetStringValue("CurrentBuildNumber")
|
|
displayVersion, _, _ := key.GetStringValue("DisplayVersion")
|
|
releaseId, _, _ := key.GetStringValue("ReleaseId")
|
|
|
|
result.Name = productName
|
|
result.Version = fmt.Sprintf("%s (Build: %s)", releaseId, currentBuild)
|
|
result.ID = displayVersion
|
|
|
|
return &result, nil
|
|
}
|