我需要检查是否安装了Microsoft filter pack 2.0应用程序。我找到了this的答案,但就我而言,我没有应用程序名称,而是注册表中名为{95140000-2000-0409-1000-0000000FF1CE}
的程序的名称目录,这是我用于检测已安装应用程序的代码:
ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FILTER_PACK_KEY}" "UninstallString"
IfErrors FilterPackNotFound FilterPackFound
答案 0 :(得分:1)
64位Windows上的注册表具有two "views",默认情况下32位应用程序访问32位视图。
NSIS可以使用SetRegView
指令访问64位视图:
Section
SetRegView 64
RegReadStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\{95140000-2000-0409-1000-0000000FF1CE}" "UninstallString"
SetRegView 32
MessageBox mb_ok $0
SectionEnd