1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | 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) } } |
注意权限问题!!!