我只想在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管理员模式下运行它,但是没有注意到
我发现了!
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)