我正在关注此文档,以使用此代码段中的Windows注册表中创建一个键/字符串:
package main
import (
"golang.org/x/sys/windows/registry"
"log"
)
func main() {
k, err := registry.OpenKey(registry.CURRENT_USER, `SoftwareMicrosoftWindowsCurrentVersionAudio`, registry.QUERY_VALUE)
if err != nil {
log.Fatal(err)
}
k.SetStringValue("xyz", "blahblah")
err = k.Close()
if err != nil {
log.Fatal(err)
}
}
但是什么也没有发生,没有任何错误。编辑(澄清):在任何情况下都无效。
您仅使用QUERY_VALUE
许可打开密钥,但是您还需要SET_VALUE
才能成功致电SetStringValue
。
您还应该检查SetStringValue
上的返回值,这可能会告诉您问题所在。
k, err := registry.OpenKey(registry.CURRENT_USER, `SoftwareMicrosoftWindowsCurrentVersionAudio`, registry.QUERY_VALUE|registry.SET_VALUE)
if err != nil {
log.Fatal(err)
}
if err := k.SetStringValue("xyz", "blahblah"); err != nil {
log.Fatal(err)
}
if err := k.Close(); err != nil {
log.Fatal(err)
}