代码之家  ›  专栏  ›  技术社区  ›  user2455111

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

  •  0
  • user2455111  · 技术社区  · 7 年前

    我需要检查是否安装了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 回复  |  直到 7 年前
        1
  •  1
  •   Anders    7 年前

    64位Windows上的注册表具有 two "views" 默认情况下,32位应用程序访问32位视图。

    NSIS可以使用 SetRegView 说明:

    Section
    SetRegView 64
    RegReadStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\{95140000-2000-0409-1000-0000000FF1CE}" "UninstallString"
    SetRegView 32
    MessageBox mb_ok $0
    SectionEnd