NSIS:如何检查是否已安装该应用程序

时间:2019-02-05 05:31:42

标签: nsis regedit

我需要检查是否安装了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

1 个答案:

答案 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