Go修改windows注册表

安装 #

go get golang.org/x/sys/windows/registry

代码 #

package main

import (
	"golang.org/x/sys/windows/registry"
)

func main() {
	// 创建:指定路径的项
	// 路径:HKEY_CURRENT_USER\Software\Hello Go
	key, exists, _ := registry.CreateKey(registry.CURRENT_USER, `SOFTWARE\Hello Go`, registry.ALL_ACCESS)
	defer key.Close()

	// 判断是否已经存在了
	if exists {
		println(`键已存在`)
	} else {
		println(`新建注册表键`)
	}

	// 写入:32位整形值
	key.SetDWordValue(`32位整形值`, uint32(123456))
	// 写入:64位整形值
	key.SetQWordValue(`64位整形值`, uint64(123456))
	// 写入:字符串
	key.SetStringValue(`字符串`, `hello`)
	// 写入:字符串数组
	key.SetStringsValue(`字符串数组`, []string{`hello`, `world`})
	// 写入:二进制
	key.SetBinaryValue(`二进制`, []byte{0x11, 0x22})

	// 读取:字符串
	s, _, _ := key.GetStringValue(`字符串`)
	println(s)

	// 读取:一个项下的所有子项
	keys, _ := key.ReadSubKeyNames(0)
	for _, key_subkey := range keys {
		// 输出所有子项的名字
		println(key_subkey)
	}

	// 创建:子项
	subkey, _, _ := registry.CreateKey(key, `子项`, registry.ALL_ACCESS)
	defer subkey.Close()

	// 删除:子项
	// 该键有子项,所以会删除失败
	// 没有子项,删除成功
	registry.DeleteKey(key, `子项`)
}

https://www.cnblogs.com/owenzhou/p/10063939.html

https://blog.csdn.net/anda0109/article/details/50313125

https://baijiahao.baidu.com/s?id=1661145859348614475&wfr=spider&for=pc