我正在按照此文档在Windows注册表中使用以下代码片段创建键/字符串:
package main import ( "golang.org/x/sys/windows/registry" "log" ) func main() { k, err := registry.OpenKey(registry.CURRENT_USER, `Software\Microsoft\Windows\CurrentVersion\Audio`, 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。
QUERY_VALUE
SET_VALUE
SetStringValue
您还应该检查的返回值SetStringValue,这很可能会告知您问题所在。
k, err := registry.OpenKey(registry.CURRENT_USER, `Software\Microsoft\Windows\CurrentVersion\Audio`, 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) }