go 操作注册表(增删改查)

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)
	}
}

注意权限问题!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值