共用方式為


如何尋找 Office 應用程式的安裝路徑

摘要

本文示範如何使用 Windows Installer 來尋找 Microsoft Office 應用程式的安裝路徑。

其他相關資訊

安裝時,大於 2000 的 Microsoft Office 版本不會在快捷方式連結中包含路徑資訊。 這麼做可讓您使用 [第一次使用時執行] 選項。 使用此選項時,會出現快捷方式,但應用程式不會安裝在硬碟上。 當您第一次按一下快捷方式時,將會安裝應用程式。

您可以使用 Windows Installer 來取得已安裝 Office 2000 應用程式的路徑。 請遵循下列步驟來建立主控台應用程式,以報告已安裝 Office 應用程式的目錄。

建置範例

  1. 在 Visual C++ 中建立空白主控台應用程式。

  2. 建立名為 main.cpp 的新檔案,並在程式碼視窗中貼上下列程式碼。

    #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. 按一下 [專案] 功能表,然後按一下 [設定] 以顯示 [專案設定] 對話方塊。

  4. 按一下 [連結] 索引標籤,然後在物件/程式庫模組清單中新增 msi.lib。

  5. 執行程式。 它會顯示安裝 Microsoft Word 的檔案路徑。

注意事項

程式碼中包含與 Word、Excel、PowerPoint 和 Access 相關聯的 GUIDS。 若要尋找另一個 Office 應用程式的路徑,請傳入應用程式名稱作為 MsiGetComponentPath 函式的第二個參數。

若要尋找 Office XP 應用程式的路徑,請以下列內容取代上述常數。

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

若要尋找 Office 2003 應用程式的路徑,請以下列內容取代上述常數。

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

若要尋找 2007 Office 應用程式的路徑,請以下列內容取代上述常數。

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

若要尋找 32 位 Office 2010 應用程式的路徑,請以下列內容取代上述常數。

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

若要尋找 64 位 Office 2010 應用程式的路徑,請以下列內容取代上述常數。

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