如何使用Golang从Windows /注册表中返回默认值

cod*_*ori 1 registry go

我只想在Windows注册表中使用Golang返回一个(默认)字符串值

k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, registry.QUERY_VALUE)
if err != nil {
    log.Fatal(err)
}
defer k.Close()

s, _, err := k.GetStringValue("(Default)") // It won't work
// s, _, err := k.GetStringValue("SystemRoot") // This is worked
if err != nil {
    log.Fatal(err)
}
fmt.Printf("Windows system root is %q\n", s)
Run Code Online (Sandbox Code Playgroud)

我在CMD管理员模式下运行它,但是没有注意到

cod*_*ori 5

我发现了!

k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, registry.ALL_ACCESS)
s, _, err := k.GetStringValue("") // The blank one refers to (Default)
Run Code Online (Sandbox Code Playgroud)