Jak najít instalační cestu aplikace Office

Souhrn

Tento článek ukazuje, jak pomocí Instalační služby systému Windows najít instalační cestu aplikací systému Microsoft Office.

Další informace

Verze systému Microsoft Office větší než 2000 nezahrnují informace o cestě do odkazů na zástupce při instalaci. To se provádí tak, aby bylo možné použít možnost Spustit při prvním použití. Při použití této možnosti se zobrazí zástupci, ale aplikace nebudou nainstalovány na pevný disk. Když na zástupce kliknete poprvé, aplikace se nainstalují.

Pomocí Instalační služby systému Windows můžete získat cestu k nainstalované aplikaci Office 2000. Postupujte podle následujících kroků a vytvořte konzolovou aplikaci, která hlásí adresář nainstalované aplikace Office.

Sestavení ukázky

  1. Vytvořte prázdnou konzolovou aplikaci v jazyce Visual C++.

  2. Vytvořte nový soubor s názvem main.cpp a vložte následující kód do okna kódu.

    #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. Klikněte na nabídku Projekt a potom kliknutím na Nastavení zobrazte dialogové okno nastavení projektu.

  4. Klikněte na kartu Odkaz a v seznamu modulů object/library přidejte soubor msi.lib.

  5. Spusťte program. Zobrazí se cesta k souboru, kde je aplikace Microsoft Word nainstalována.

Poznámka

Součástí kódu jsou identifikátory GUID přidružené k Wordu, Excelu, PowerPointu a Accessu. Pokud chcete najít cestu pro jinou aplikaci Office, předejte název aplikace jako druhý parametr funkce MsiGetComponentPath.

Pokud chcete najít cestu k aplikaci Office XP, nahraďte konstanty uvedené výše následujícím kódem.

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

Pokud chcete najít cestu k aplikaci Office 2003, nahraďte výše uvedené konstanty následujícím kódem.

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

Pokud chcete najít cestu k aplikaci Office 2007, nahraďte výše uvedené konstanty následujícím kódem.

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

Pokud chcete najít cestu k 32bitové aplikaci Office 2010, nahraďte výše uvedené konstanty následujícím kódem.

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

Pokud chcete najít cestu k 64bitové aplikaci Office 2010, nahraďte výše uvedené konstanty následujícím kódem.

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