Compartilhar via


Como localizar o caminho de instalação de um aplicativo do Office

Resumo

Este artigo demonstra como usar o Windows Installer para localizar o caminho de instalação dos aplicativos do Microsoft Office.

Informações adicionais

As versões do Microsoft Office maiores que 2000 não incluem informações de caminho nos links de atalho quando instaladas. Isso é feito para que a opção "Executar no Primeiro Uso" possa ser usada. Quando essa opção for usada, os atalhos serão exibidos, mas os aplicativos não serão instalados no disco rígido. Quando você clicar no atalho pela primeira vez, os aplicativos serão instalados.

Você pode usar o Windows Installer para obter o caminho do aplicativo do Office 2000 instalado. Siga as etapas abaixo para criar um aplicativo de console que relata o diretório de um aplicativo do Office instalado.

Compilando o exemplo

  1. Crie um aplicativo de console em branco no Visual C++.

  2. Crie um novo arquivo chamado main.cpp e cole o código a seguir na janela 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. Clique no menu Projeto e clique em Configurações para abrir a caixa de diálogo configurações do projeto.

  4. Clique na guia Link e adicione msi.lib na lista de módulos de objeto/biblioteca.

  5. Execute o programa. Ele exibirá o caminho do arquivo em que o Microsoft Word está instalado.

Observação

Incluídos no código estão os GUIDS associados ao Word, Excel, PowerPoint e Access. Para localizar o caminho para outro aplicativo do Office, passe o nome do aplicativo como o segundo parâmetro da função MsiGetComponentPath.

Para localizar o caminho de um aplicativo do Office XP, substitua as constantes acima pelo seguinte.

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 localizar o caminho de um aplicativo do Office 2003, substitua as constantes acima pelo seguinte.

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 localizar o caminho de um aplicativo do Office 2007, substitua as constantes acima pelo seguinte.

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 localizar o caminho de um aplicativo do Office 2010 de 32 bits, substitua as constantes acima pelo seguinte.

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 localizar o caminho de um aplicativo do Office 2010 de 64 bits, substitua as constantes acima pelo seguinte.

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