无法访问某些注册表项
Can't access some registry keys
我正在尝试访问 NSIS 脚本中的节点版本号,以便了解我是否需要升级 node.js'。为此,我注意到键 HKLM\SOFTWARE\Node.js\ServerType 包含我需要的数字。
我尝试通过 :
访问它
ReadRegStr [=10=] HKLM "SOFTWARE\Node.js" ServerType
但它不起作用,$0 始终为空。
我在使用这些键时也有奇怪的行为:
ReadRegStr [=11=] HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" CurrentVersion
returns 我是 Java JRE 的好版本,但是当我在注册表中手动更改它时,当我 运行 NSIS 安装程序时它不会改变 =>我感觉安装程序没有按照我设置的路径读取它(x86 中的安装程序和 x64 中的 OS 冲突可能?)。
我有点迷茫,不知道下一步该做什么。你有什么想法吗?
在 64 位版本的 Windows 上,32 位应用程序会看到一个特殊的 32 位注册表视图,这与您在 Regedit 中看到的不同。在 Regedit 中,这些键的基础位于 Wow6432Node 下。一些键也被两个视图共享。
要访问 NSIS 中的 64 位视图,您可以使用 SetRegView
指令。
我正在尝试访问 NSIS 脚本中的节点版本号,以便了解我是否需要升级 node.js'。为此,我注意到键 HKLM\SOFTWARE\Node.js\ServerType 包含我需要的数字。
我尝试通过 :
访问它ReadRegStr [=10=] HKLM "SOFTWARE\Node.js" ServerType
但它不起作用,$0 始终为空。
我在使用这些键时也有奇怪的行为:
ReadRegStr [=11=] HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" CurrentVersion
returns 我是 Java JRE 的好版本,但是当我在注册表中手动更改它时,当我 运行 NSIS 安装程序时它不会改变 =>我感觉安装程序没有按照我设置的路径读取它(x86 中的安装程序和 x64 中的 OS 冲突可能?)。
我有点迷茫,不知道下一步该做什么。你有什么想法吗?
在 64 位版本的 Windows 上,32 位应用程序会看到一个特殊的 32 位注册表视图,这与您在 Regedit 中看到的不同。在 Regedit 中,这些键的基础位于 Wow6432Node 下。一些键也被两个视图共享。
要访问 NSIS 中的 64 位视图,您可以使用 SetRegView
指令。