1

在 Windows 7/64 位计算机上,NSIS 功能WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\" "blah" "blah"不起作用。

据我了解,让它工作的唯一方法是这样做:WriteRegStr HKLM "Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\" "blah" "blah"

我是否正确,这是在 Windows 7/64 位计算机上写入本地计算机注册表的唯一方法?

是否有可以写入本地机器注册表的跨平台方式/功能?

我唯一的选择是这样的吗...

!macro WriteRegStrLocalMachine path regName regValue

    WriteRegStr HKLM "SOFTWARE\WOW6432Node\${path}" "${regName}" "${regValue}"
    WriteRegStr HKLM "SOFTWARE\${path}" "${regName}" "${regValue}"
!macroend

!macro ReadRegStrLocalMachine path regName regValue

    ReadRegStr $1 HKLM "SOFTWARE\WOW6432Node\${path}" "${regName}"
    ReadRegStr $2 HKLM "SOFTWARE\WOW6432Node\${path}" "${regName}"

    # TODO: Check if $1 or $2 contain data 
!macroend
4

1 回答 1

2

我是否正确,这是在 Windows 7/64 位计算机上写入本地计算机注册表的唯一方法?

错误:使用 NSIS(在下一个版本之前是 32b 应用程序 - 当前是 2.46),您可以选择使用 64b 或 32b 访问SetRegView

于 2012-12-17T04:35:40.753 回答