📙Go语言:进阶大全

Go语言:操作注册表

2019-01-14  本文已影响18232人  白祤星

1. 安装


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

2. 代码实例


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, `子项`)
}
上一篇下一篇

猜你喜欢

热点阅读