gpt4 book ai didi

windows - 在 NSIS 中导入注册表项时出错

转载 作者:可可西里 更新时间:2023-11-01 11:47:41 27 4
gpt4 key购买 nike

我正在通过 NSIS 设置为我的应用程序制作包装器。在包装器中,我需要为我的应用程序做一些注册表项。这些条目将位于注册表路径“HKLM\SOFTWARE\Wow6432Node\Microsoft”和“HKLM\SOFTWARE\Microsoft”中。

问题是当我在 NSIS 中通过 [ExecWait ”regedit.exe/s registry.reg”] 命令导入注册表时,注册表项不会添加到路径“HKLM\SOFTWARE\Microsoft”,只有在其他条目中才会添加。与此一起,在 NSIS 设置中,路径“HKLM\SOFTWARE\Wow6432Node\Wow6432Node\Microsoft”中将出现一个新条目,它不知从何而来,因为我没有在注册表文件中包含任何提到的注册表条目。

我检查了注册表文件,里面没有问题。我尝试直接运行注册表文件,并直接在 bat 文件和 CMD (regedit.exe/s registry.reg) 中尝试了相同的命令。一切正常。仅在 NSIS 中它不起作用。任何帮助都会很棒。

编辑:操作系统:windows 7, 64位

NSIS 版本:2.46

最佳答案

我猜你的应用程序 nsis 安装程序是 32 位的。由于它是一个 32 位安装程序,每个注册表操作都会由 Windows 应用兼容性 key “Wow6432Node”自动转换。看这个link关于注册表重定向

要在 32 位和 64 位注册表之间切换,您的代码应如下所示:

SetRegView 64
WriteRegDWORD HKLM "SOFTWARE\<Key1>\<Key2>" "Value" 0
SetRegView 32
WriteRegStr HKLM "SOFTWARE\<Key1>\<Key2>" "Value" "1"

由于 nsis 有自己的修改 windows 注册表的 native 函数,使用 ExecWait regedit.exe/s registry.reg 不是一个好主意

关于windows - 在 NSIS 中导入注册表项时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40375046/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com