go - 如何通过 go 编程语言从运行在 64 位系统上的 x86 应用程序的注册表中获取值?

标签 go registry

我无法从 Windows 注册表中的键中获取值。 我用这个设置编译我的应用程序

GOOS=windows GOARCH=386 go build -o test.exe test.go && ./test.exe

通过go版本go1.12.7 windows/amd64 在 64 位操作系统 Windows 10 上运行

我通过这段代码获取键的值

k, err := registry.OpenKey(registry.LOCAL_MACHINE, <my_key_path_variable>, registry.QUERY_VALUE|registry.WOW64_32KEY)
...
value, _, err := k.GetStringValue(`Path`)

我成功地从 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node,但是当我从 HKEY_LOCAL_MACHINE\SOFTWARE 获取 key (不是值)时,出现错误“系统找不到指定的文件。”,但是 key 100% 存在于注册表中。请帮忙。谢谢。

最佳答案

您需要以管理员权限运行该应用程序。

  1. 以管理员身份打开CMD
  2. 转到您的项目文件夹,然后运行应用程序

关于go - 如何通过 go 编程语言从运行在 64 位系统上的 x86 应用程序的注册表中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57228321/

相关文章:

C++ REG_SZ 加值失败

c# - 在 64 位计算机上使用 C# 和 "BUILD x86"进行注册表访问

c# - 安装程序自定义操作 - 注册 COM dll - C#

go - 解码自定义 [32] 字节类型返回零值

json - 在 Go 中解码通用 json

json - 是否可以解码表示结构中字节数组的 json 字符串?

c++ - Qt如何写入HKLM

go - 如何在 go 中获取指向类型化函数的函数指针?

go - 为什么我们要在 Go 中使用空白标识符?

windows - 何时 - 为什么 - 应该将数据存储在 Windows 注册表中?