So finden Sie den Installationspfad einer Office-Anwendung

Zusammenfassung

In diesem Artikel wird die Verwendung des Windows Installer zum Suchen des Installationspfads von Microsoft Office-Anwendungen veranschaulicht.

Weitere Informationen

Versionen von Microsoft Office über 2000 enthalten bei der Installation keine Pfadinformationen in den Verknüpfungslinks. Dies geschieht, damit die Option "Bei erster Verwendung ausführen" verwendet werden kann. Wenn diese Option verwendet wird, werden die Tastenkombinationen angezeigt, aber die Anwendungen werden nicht auf der Festplatte installiert. Wenn Sie zum ersten Mal auf die Verknüpfung klicken, werden die Anwendungen installiert.

Mit dem Windows Installer können Sie den Pfad der installierten Office 2000-Anwendung abrufen. Führen Sie die folgenden Schritte aus, um eine Konsolenanwendung zu erstellen, die das Verzeichnis einer installierten Office-Anwendung meldet.

Erstellen des Beispiels

  1. Erstellen Sie eine leere Konsolenanwendung in Visual C++.

  2. Erstellen Sie eine neue Datei namens "main.cpp", und fügen Sie den folgenden Code in das Codefenster ein.

    #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. Klicken Sie auf das Menü "Projekt" und dann auf "Einstellungen", um das Dialogfeld "Projekteinstellungen" anzuzeigen.

  4. Klicken Sie auf die Registerkarte "Link", und fügen Sie "msi.lib" in der Liste der Objekt-/Bibliotheksmodule hinzu.

  5. Führen Sie das Programm aus. Es wird der Dateipfad angezeigt, unter dem Microsoft Word installiert ist.

Hinweis

Im Code sind die GUIDS enthalten, die Word, Excel, PowerPoint und Access zugeordnet sind. Um den Pfad für eine andere Office-Anwendung zu finden, übergeben Sie den Namen der Anwendung als zweiten Parameter der MsiGetComponentPath-Funktion.

Um den Pfad einer Office XP-Anwendung zu finden, ersetzen Sie die obigen Konstanten durch Folgendes.

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

Um den Pfad einer Office 2003-Anwendung zu finden, ersetzen Sie die obigen Konstanten durch Folgendes.

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

Um den Pfad einer 2007 Office-Anwendung zu finden, ersetzen Sie die obigen Konstanten durch Folgendes.

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

Um den Pfad einer 32-Bit-Office 2010-Anwendung zu finden, ersetzen Sie die obigen Konstanten durch Folgendes.

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

Um den Pfad einer 64-Bit-Office 2010-Anwendung zu finden, ersetzen Sie die oben aufgeführten Konstanten durch Folgendes.

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