func tCURDRegistry() {
// 创建键值,若已存在,则直接返回键值,注意权限
key, exist, err := registry.CreateKey(registry.CURRENT_USER, "test", registry.ALL_ACCESS)
if err != nil {
log.Fatal(err)
}
defer key.Close()
fmt.Println(key, exist)
// 创建子键值
subKey, exist, err := registry.CreateKey(key, "test_sub", registry.ALL_ACCESS)
if err != nil {
log.Fatal(err)
}
defer subKey.Close()
fmt.Println(subKey, exist)
// 查询键值
//key1, err := registry.OpenKey(registry.CURRENT_USER, "test", registry.ALL_ACCESS)
//if err != nil {
// log.Fatal(err)
//}
//defer key1.Close()
// 没有修改键值的相关方法,可以删了再加新的
// 修改值项,若不存在会添加
err = key.SetStringValue("A", "a")
if err != nil {
log.Fatal(err)
}
err = key.SetStringValue("B", "b")
if err != nil {
log.Fatal(err)
}
// 获取值项
v, vt, err := key.GetStringValue("A")
if err != nil {
log.Fatal(err)
}
fmt.Println(v, vt)
// 参数设0,枚举所有子键
kns, err := key.ReadSubKeyNames(0)
if err != nil {
log.Fatal(err)
}
fmt.Println(kns)
// 参数设0,枚举所有值项
vns, err := key.ReadValueNames(0)
if err != nil {
log.Fatal(err)
}
fmt.Println(vns)
// 删除值项
err = key.DeleteValue("A")
if err != nil {
log.Fatal(err)
}
// 删除键值,注意:若有子键,删除会报错
//err = registry.DeleteKey(registry.CURRENT_USER, "test")
//if err != nil {
// log.Fatal(err)
//}
err = registry.DeleteKey(key, "test_sub")
if err != nil {
log.Fatal(err)
}
}
注意权限问题!!!