WriteRegStr HKLM:跨Windows平台解决方案

时间:2012-12-17 00:06:58

标签: installer 64-bit nsis

在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

1 个答案:

答案 0 :(得分:2)

  

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

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

访问64b或32b