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