Comment trouver le chemin d’installation d’une application Office

Résumé

Cet article explique comment utiliser Windows Installer pour rechercher le chemin d’installation des applications Microsoft Office.

Informations supplémentaires

Les versions de Microsoft Office supérieures à 2000 n’incluent pas les informations de chemin d’accès dans les liens contextuels lors de l’installation. Cette opération permet d’utiliser l’option « Exécuter en première utilisation ». Lorsque cette option est utilisée, les raccourcis s’affichent, mais les applications ne sont pas installées sur le disque dur. Lorsque vous cliquez sur le raccourci pour la première fois, les applications sont installées.

Vous pouvez utiliser Windows Installer pour obtenir le chemin de l’application Office 2000 installée. Suivez les étapes ci-dessous pour créer une application console qui signale le répertoire d’une application Office installée.

Génération de l’exemple

  1. Créez une application console vide dans Visual C++.

  2. Créez un fichier appelé main.cpp et collez le code suivant dans la fenêtre de code.

    #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. Cliquez sur le menu Projet, puis sur Paramètres pour afficher la boîte de dialogue Paramètres du projet.

  4. Cliquez sur l’onglet Lien et ajoutez msi.lib dans la liste des modules Object/library.

  5. Exécutez le programme. Il affiche le chemin d’accès au fichier dans lequel Microsoft Word est installé.

Remarque

Les GUID associés à Word, Excel, PowerPoint et Access sont inclus dans le code. Pour trouver le chemin d’accès d’une autre application Office, transmettez le nom de l’application en tant que deuxième paramètre de la fonction MsiGetComponentPath.

Pour trouver le chemin d’accès d’une application Office XP, remplacez les constantes ci-dessus par ce qui suit.

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

Pour trouver le chemin d’accès d’une application Office 2003, remplacez les constantes ci-dessus par ce qui suit.

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

Pour trouver le chemin d’accès d’une application Office 2007, remplacez les constantes ci-dessus par ce qui suit.

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

Pour trouver le chemin d’accès d’une application Office 2010 32 bits, remplacez les constantes ci-dessus par ce qui suit.

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

Pour trouver le chemin d’accès d’une application Office 2010 64 bits, remplacez les constantes ci-dessus par ce qui suit.

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