代码之家  ›  专栏  ›  技术社区  ›  Samuel Jack

检测是否安装了Excel2003的最佳方法是什么?

  •  3
  • Samuel Jack  · 技术社区  · 16 年前

    我使用的是WIXv3.0(归根结底是一个MSI安装程序),我试图编写一个条件来确保安装了Excel2003。检测机器上是否存在Excel2003的最佳(最可靠)方法是什么?

    我看过很多不同的建议,但没有明确或权威的答案。

    4 回复  |  直到 14 年前
        1
  •  8
  •   Samuel Jack    15 年前

    我在Office2003工具包中找到了一个文件, Office 2003 Keypath and Default Installation Settings workbooks 它包含Office组件的所有guid。基于此,我使用组件搜索来定位核心Excel组件。在Wix中,我的情况如下:

        <Property Id="EXCEL2003INSTALLED">
          <!-- This is the Component Id of Global_Excel_Core -->
          <ComponentSearch Id="DetectExcel2003" Guid="{A2B280D4-20FB-4720-99F7-40C09FBCE10A}" Type="file"/>
        </Property>
        <Condition Message="This application requires Excel 2003 to be installed."><![CDATA[Installed OR EXCEL2003INSTALLED]]></Condition>
    

    This page 具有用于其他Office应用程序和其他版本的组件guid。

        2
  •  4
  •   Ant    14 年前

    我们在以下位置检查installroot注册表项:

    HKLM\Software\Microsoft\Office\12.0\Excel\InstallRoot
    

    (将12.0替换为应用程序的相关版本号)。

    请注意,在64位操作系统上,这将反映到注册表的32位部分(请参见 this Microsoft article 有关注册表反射的详细信息)。

    至少对2000、XP、2003、2007和2010版本来说,这似乎很好。2010年唯一的变化是64位版本需要您查看注册表的64位部分。

        3
  •  0
  •   CodeMonkey1313    16 年前

    您可以尝试检查注册表,或者检查Excel的典型安装路径。

        4
  •  0
  •   coding Bott    16 年前

    Excel(Office)也由Windows Installer安装。 为什么不检查Excel组件代码?