Cómo encontrar la ruta de instalación de una aplicación de Office

Resumen

En este artículo se muestra cómo usar Windows Installer para buscar la ruta de instalación de las aplicaciones de Microsoft Office.

Más información

Las versiones de Microsoft Office mayores que 2000 no incluyen información de ruta de acceso en los vínculos de acceso directo cuando se instalan. Esto se hace para que se pueda usar la opción "Ejecutar en primer uso". Cuando se usa esta opción, aparecerán los accesos directos, pero las aplicaciones no se instalarán en el disco duro. Al hacer clic en el acceso directo por primera vez, se instalarán las aplicaciones.

Puede usar Windows Installer para obtener la ruta de acceso de la aplicación de Office 2000 instalada. Siga los pasos que se indican a continuación para crear una aplicación de consola que informe del directorio de una aplicación de Office instalada.

Creación del ejemplo

  1. Cree una aplicación de consola en blanco en Visual C++.

  2. Cree un nuevo archivo denominado main.cpp y pegue el código siguiente en la ventana de código.

    #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 = MsiLocateComponent(Word,sPath,&size);
    
    if ((installstate == INSTALLSTATE_LOCAL) || 
             (installstate == INSTALLSTATE_SOURCE)) 
    cout << "Installed in: " << sPath << endl;
    delete sPath;
    return 0;
    }
    
  3. Haga clic en el menú Proyecto y, a continuación, haga clic en Configuración para abrir el cuadro de diálogo configuración del proyecto.

  4. Haga clic en la pestaña Vínculo y agregue msi.lib en la lista de módulos objeto/biblioteca.

  5. Ejecute el programa. Mostrará la ruta de acceso del archivo donde está instalado Microsoft Word.

Nota:

En el código se incluyen los GUID asociados a Word, Excel, PowerPoint y Access. Para buscar la ruta de acceso de otra aplicación de Office, pase el nombre de la aplicación como segundo parámetro de la función MsiGetComponentPath.

Para buscar la ruta de acceso de una aplicación de Office XP, reemplace las constantes anteriores por las siguientes.

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}";

Para buscar la ruta de acceso de una aplicación de Office 2003, reemplace las constantes anteriores por las siguientes.

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}";

Para buscar la ruta de acceso de una aplicación de Office 2007, reemplace las constantes anteriores por las siguientes.

const char *Word = "{0638C49D-BB8B-4CD1-B191-051E8F325736}";
const char *Excel = "{0638C49D-BB8B-4CD1-B191-052E8F325736}";
const char *PowerPoint = "{0638C49D-BB8B-4CD1-B191-053E8F325736}";
const char *Access = "{0638C49D-BB8B-4CD1-B191-054E8F325736}";
const char *Office = "{0638C49D-BB8B-4CD1-B191-050E8F325736}";

Para buscar la ruta de acceso de una aplicación de Office 2010 de 32 bits, reemplace las constantes anteriores por las siguientes.

const char *Word = "{019C826E-445A-4649-A5B0-0BF08FCC4EEE}"; 
const char *Excel = "{538F6C89-2AD5-4006-8154-C6670774E980}";
const char *PowerPoint = "{E72E0D20-0D63-438B-BC71-92AB9F9E8B54}";
const char *Access = "{AE393348-E564-4894-B8C5-EBBC5E72EFC6}";
const char *Office = "{398E906A-826B-48DD-9791-549C649CACE5}";

Para buscar la ruta de acceso de una aplicación de Office 2010 de 64 bits, reemplace las constantes anteriores por las siguientes.

const char *Word = "{C0AC079D-A84B-4CBD-8DBA-F1BB44146899}"; 
const char *Excel = "{8B1BF0B4-A1CA-4656-AA46-D11C50BC55A4}";
const char *PowerPoint = "{EE8D8E0A-D905-401D-9BC3-0D20156D5E30}";
const char *Access = "{02F5CBEC-E7B5-4FC1-BD72-6043152BD1D4}";
const char *Office = "{E6AC97ED-6651-4C00-A8FE-790DB0485859}";