我正在尝试测试该功能以读取nsis中的注册表。
我的nsis脚本中有这个。
section
ReadRegStr $0 HKLM "Software\Mozilla\Mozilla Firefox" "CurrentVersion"
DetailPrint "Mozilla version: $0"
ReadRegStr $0 HKLM "Software\RegistredAplications" "Google Chrome"
DetailPrint "Chrome: $0"
ReadRegStr $0 HKLM "Software\vim\gvim" "path"
DetailPrint "Gvim path: $0"
ReadRegStr $0 HKLM Software\NSIS ""
DetailPrint "NSIS is installed at: $0"
sectionend
输出为:
Mozilla version:
Chrome:
Gvim path: C:\Program Files (x86)\Vim\vim81\gvim.exe
NSIS is installed at: C:\Program Files (x86)\NSIS
Completed
我认为问题是由路径中的空格引起的。 我该如何解决?
答案 0 :(得分:0)
您很可能查看了错误的注册表项。 64位Windows具有two registry views。您也拼写错误的RegisteredApplications
,不是RegistredAplications
!
您可以使用SetRegView
访问NSIS中的其他视图:
SetRegView 64
ReadRegStr $0 HKLM "Software\RegistredAplications" "Google Chrome"
SetRegView LastUsed
DetailPrint "64-bit Chrome: $0"
或者,如果您使用的是NSIS v3的最新版本,则可以直接访问64位密钥:
ReadRegStr $0 HKLM64 "Software\RegisteredApplications" "Google Chrome"
DetailPrint "64-bit Chrome: $0"
ReadRegStr $0 HKLM32 "Software\RegisteredApplications" "Google Chrome"
DetailPrint "32-bit Chrome: $0"