Installation 检测Adobe Acrobat 9.3+;已安装

Installation 检测Adobe Acrobat 9.3+;已安装,installation,windows-installer,adobe-reader,Installation,Windows Installer,Adobe Reader,我使用的是引导程序,我需要检测是否安装了Adobe Acrobat 9.3或更高版本作为先决条件 目前我正在使用此注册表检测安装: HKEY_CURRENT_USER\SOFTWARE\Adobe\Acrobat Reader\9.0\AdobeViewer\ELUA 我只是检查一下钥匙是否存在。这有以下问题: 它取决于可能随新版本而更改的注册表路径 ELUA密钥仅在启动adobe reader后存在。如果在启动读卡器之前再次运行安装,则会强制他们重新安装 这个密钥不允许我真正检查他们的ado

我使用的是引导程序,我需要检测是否安装了Adobe Acrobat 9.3或更高版本作为先决条件

目前我正在使用此注册表检测安装:

HKEY_CURRENT_USER\SOFTWARE\Adobe\Acrobat Reader\9.0\AdobeViewer\ELUA
我只是检查一下钥匙是否存在。这有以下问题:

  • 它取决于可能随新版本而更改的注册表路径
  • ELUA密钥仅在启动adobe reader后存在。如果在启动读卡器之前再次运行安装,则会强制他们重新安装
  • 这个密钥不允许我真正检查他们的adobe版本
  • 仅供参考,.net安装程序可以通过文件{exists/file version}或注册表项{exists/version}检查现有产品。我更喜欢使用注册表,因为应用程序可以安装在任何地方,我无法使用此工具扫描“卸载”注册表项

    有什么想法吗

    在按键下

    KEY\u CURRENT\u USER\SOFTWARE\Adobe\Acrobat Reader\9.0\Installer

    您可以找到安装路径。一旦你有了安装路径,你就可以去那里,找到可执行文件“AcroRd32.exe”,并用代码获取它的版本

    FileVersionInfo myFI=FileVersionInfo.GetVersionInfo(“yourexe.exe”)


    正如您所说,never版本可能具有不同的注册表项。您必须在代码中处理这些问题,通过“AcrobatReader”下的键,获取它们的名称,可能是“10.0”和“9.0”,解析它们,然后比较它们以获得最新版本信息。

    如问题中所述,这不是C代码,而是声明式XML引导程序。这个解决方案在这方面不起作用。