如何查找 Office 2000、Office XP 或 Office 2003 应用程序的安装路径

文章翻译 文章翻译
文章编号: 234788 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文阐释如何使用 Windows Installer 查找 Microsoft Office、Office XP 或 Office 2003 应用程序的安装路径。

更多信息

版本高于 2000 的 Microsoft Office 在安装时不会在快捷方式链接中包含路径信息。这样做的目的是可以使用“首次使用时运行”选项。当使用此选项时,快捷方式将显示,但应用程序将不会安装在硬盘上。当您首次单击该快捷方式时,应用程序将被安装。

您可以使用 Windows Installer 来获取所安装的 Office 应用程序的路径。按照下面给出的步骤操作,可以创建一个能够报告所安装的 Office 应用程序的目录的控制台应用程序。

生成示例

  1. 在 Visual C++ 中创建一个空的控制台应用程序。
  2. 创建一个名为 main.cpp 的新文件,然后在代码窗口中粘贴下面的代码:
    #include <windows.h>
    #include <msi.h>
    #include <ostream.h>
    
    const char *Word = "{CC29E963-7BC2-11D1-A921-00A0C91E2AA2}";
    const char *Excel = "{CC29E96F-7BC2-11D1-A921-00A0C91E2AA2}";
    const char *PowerPoint = "{CC29E94B-7BC2-11D1-A921-00A0C91E2AA2}";
    const char *Access = "{CC29E967-7BC2-11D1-A921-00A0C91E2AA2}";
    const char *Office = "{00000409-78E1-11D2-B60F-006097C998E7}";
    
    int main(void)
    {
    	DWORD size = 300;
    	INSTALLSTATE installstate;
    	char *sPath;
    
    	sPath = new char[size];
            installstate = MsiGetComponentPath(
            Office,Word,sPath,&size);
    
    	if ((installstate == INSTALLSTATE_LOCAL) || 
                (installstate == INSTALLSTATE_SOURCE)) 
    	  cout << "Installed in: " << sPath << endl;
    	delete sPath;
    	return 0;
    }
    					
  3. 单击项目菜单,然后单击设置以显示项目设置对话框。
  4. 单击链接选项卡,然后在对象/库模块列表中添加 msi.lib
  5. 运行该程序。它将显示安装 Microsoft Word 的文件路径。

    注意:代码中还包含与 Word、Excel、PowerPoint 和 Access 关联的 GUID。要查找另一个 Office 应用程序的路径,请将该应用程序的名称作为 MsiGetComponentPath 函数的第二个参数进行传递。

    要查找 Office XP 应用程序的路径,请使用下面的内容替换上述常量:
    const char *Word = "{8E46FEFA-D973-6294-B305-E968CEDFFCB9}";
    const char *Excel = "{5572D282-F5E5-11D3-A8E8-0060083FD8D3}";
    const char *PowerPoint = "{FC780C4C-F066-40E0-B720-DA0F779B81A9}";
    const char *Access = "{CC29E967-7BC2-11D1-A921-00A0C91E2AA3}";
    const char *Office = "{20280409-6000-11D3-8CFE-0050048383C9}";
    					
    要查找 Office 2003 应用程序的路径,请使用下面的内容替换上述常量:
    const char *Word = "{1EBDE4BC-9A51-4630-B541-2561FA45CCC5}";
    const char *Excel = "{A2B280D4-20FB-4720-99F7-40C09FBCE10A}";
    const char *PowerPoint = "{C86C0B92-63C0-4E35-8605-281275C21F97}";
    const char *Access = "{F2D782F8-6B14-4FA4-8FBA-565CDDB9B2A8}";
    const char *Office = "{90110409-6000-11D3-8CFE-0150048383C9}";
    					

参考

您可以从以下位置下载 Windows Installer SDK(它包含 MSI.LIB 文件):
http://www.microsoft.com/downloads/details.aspx?FamilyID=e96f8abc-62c3-4cc3-93ad-bfc98e3ae4a3&DisplayLang=en
有关 Office 自动化的更多信息,请访问以下 Microsoft Office Development 支持中心网站:

http://support.microsoft.com/ofd

属性

文章编号: 234788 - 最后修改: 2006年3月31日 - 修订: 5.6
这篇文章中的信息适用于:
  • Microsoft Office Word 2003
  • Microsoft Office Access 2003
  • Microsoft Office PowerPoint 2003
  • Microsoft Office Excel 2003
  • Microsoft Excel 2000 标准版
  • Microsoft Access 2000 标准版
  • Microsoft PowerPoint 2000 标准版
  • Microsoft Word 2000 标准版
  • Microsoft Access 2002 标准版
  • Microsoft Excel 2002 标准版
  • Microsoft PowerPoint 2002 标准版
  • Microsoft Word 2002 标准版
关键字:?
kbhowto KB234788
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com