nsis - 在 64 位系统中写入注册表值

标签 nsis

我在 NSIS 中构建了一个应用程序设置。该集合需要在以下位置创建一个 key 才能启动我的应用程序:-
HKEY_LOCAL_MACHINE\Software\\\""VersionNo"0
HKEY_LOCAL_MACHINE\Software\Wow6432Node\\""VersionNo""11"

在脚本中,我使用了:-

      WriteRegDWORD HKLM "SOFTWARE\<Key1>\<Key2>\<Key3>" "VersionNo" 0
      WriteRegStr HKLM "SOFTWARE\<Key1>\<Key2>" "VersionNo" "11"

此 key 在 32 位 Windows 7 系统上创建成功。但是,当我在 64 位 Windows 7 系统上安装设置时,未在上述位置创建 key 。相反,它在以下位置创建 key :-
      HKEY_LOCAL_MACHINE\Software\Wow6432Node\<Key1>\<Key2>\<Key3>" "VersionNo" 0
      HKEY_LOCAL_MACHINE\Software\Wow6432Node\<Key1>\<Key2>" "VersionNo" "11"

这导致我的应用程序在安装后无法启动。

- 有人可以建议 NSIS 的命令/脚本在 HKEY_LOCAL_MACHINE\Software\下为 64 位系统强制创建 key ,而不是在 HKEY_LOCAL_MACHINE\Software\Wow6432Node 下创建吗?

急切地等待解决方案......

最佳答案

使用 SetRegView在 32 位和 64 位注册表之间切换。您的代码应如下所示:

SetRegView 64
WriteRegDWORD HKLM "SOFTWARE\<Key1>\<Key2>" "VersionNo" 0
SetRegView 32
WriteRegStr HKLM "SOFTWARE\<Key1>\<Key2>" "VersionNo" "11"

关于nsis - 在 64 位系统中写入注册表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11150238/

相关文章:

function - NSiS 在安装结束时调用函数转储日志文件

electron - 将自定义页面/字段添加到使用 electron-builder 创建的 NSIS 设置

electron - 在 Electron 应用程序中实现延迟深度链接

installation - 设置在 nsis 安装程序的自定义对话框页面上添加的自定义标签的字体

nsis - 适用于不同操作系统的两个 .exe 版本

installation - 如何根据系统颜色更改 NSIS 安装程序背景颜色

batch-file - 使用 NSIS 安装程序中的参数运行控制台应用程序

installation - NSIS - 仅在安装完成时运行程序

windows - nsis卸载程序未删除 Electron 应用程序的注册表-nsh脚本

installation - NSIS 脚本是用什么语言编写的?