Como encontrar o caminho de instalação de uma aplicação do Office

Resumo

Este artigo demonstra como utilizar o Windows Installer para encontrar o caminho de instalação das aplicações do Microsoft Office.

Mais Informações

As versões do Microsoft Office maiores do que 2000 não incluem informações sobre o caminho nas ligações de atalho quando instaladas. Isto é feito para que a opção "Executar na Primeira Utilização" possa ser utilizada. Quando esta opção é utilizada, os atalhos serão apresentados, mas as aplicações não serão instaladas no disco rígido. Quando clica no atalho pela primeira vez, as aplicações serão instaladas.

Pode utilizar o Windows Installer para obter o caminho da aplicação instalada do Office 2000. Siga os passos abaixo para criar uma aplicação de consola que reporte o diretório de uma aplicação do Office instalada.

Criar o Exemplo

  1. Crie uma aplicação da consola em branco no Visual C++.

  2. Crie um novo ficheiro denominado main.cpp e colar o seguinte código 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, em seguida, clique em Definições para ver a caixa de diálogo definições do projeto.

  4. Clique no separador Ligação e adicione msi.lib na lista de módulos de Objeto/biblioteca.

  5. Execute o programa. Irá apresentar o caminho do ficheiro onde o Microsoft Word está instalado.

Nota

Incluído no código estão os GUIDS associados ao Word, Excel, PowerPoint e Access. Para encontrar o caminho de outra aplicação do Office, passe no nome da aplicação como o segundo parâmetro da função MsiGetComponentPath.

Para encontrar o caminho de uma aplicação 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 encontrar o caminho de uma aplicação 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 encontrar o caminho de uma aplicação 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 encontrar o caminho de uma aplicação de 32 bits do Office 2010, 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 encontrar o caminho de uma aplicação de 64 bits do Office 2010, 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}";