Определение папки, в которую было установлено приложение из пакета Office 2000, Office XP или Office 2003

Аннотация

Данная статья содержит описание процесса определения с помощью установщика Windows папки, в которую было установлено приложение из пакета Office 2000, Office XP или Office 2003.

Дополнительная информация

Ярлык программы из пакета Microsoft Office версии более поздней, чем Office 2000, не содержит сведений о папке, в которой установлена программа. Благодаря этому возможна установка «при первом вызове». В случае выбора этого способа появляется только ярлык, а установка самого приложения происходит только при первом его запуске с помощью ярлыка.

Папку, в которую было установлено приложение Office, можно определить с помощью установщика Windows. Ниже приведены инструкции по созданию соответствующего консольного приложения.

Пример приложения

  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 = MsiGetComponentPath(
    Office,Word,sPath,&size);

    if ((installstate == INSTALLSTATE_LOCAL) ||
    (installstate == INSTALLSTATE_SOURCE))
    cout << "Installed in: " << sPath << endl;
    delete sPath;
    return 0;
    }
  3. Для открытия диалогового окна свойств проекта выберите команду Settings в меню Project.
  4. Откройте вкладку Link и добавьте файл msi.lib в список модулей Object/library.
  5. Запустите программу. В результате ее выполнения будет отображено имя папки, в которой установлена система Microsoft Word.

    Примечание. В приведенный пример программного кода включены коды GUID, сопоставленные Word, Excel, PowerPoint и Access. Для определения папки, в которой установлено другое приложение, передайте функции 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}";

Ссылки

Windows Installer SDK, в состав которого входит файл MSI.LIB, можно загрузить со следующего веб-узла корпорации Мicrosoft: Для получения дополнительных сведений об автоматизации обратитесь на веб-узел Microsoft Office Development Support:

Свойства

Номер статьи: 234788 — последний просмотр: 19 нояб. 2008 г. — редакция: 1

Отзывы и предложения