Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Как определить установлен ли Access?


Автор: Alca 3.3.2008, 16:45
Как определить установлен ли Access (без поисках в реестре)?

Автор: mrbrooks 3.3.2008, 17:29
А просто интересно чем же реестр не устраивает? 
Можно тогда просто в программных файлах поискать MSACCES.EXE  smile 

Автор: Alca 3.3.2008, 18:49
Код

//---------------------------------------------------------------------------
//установлено ли приложение
bool bIsApplicationInstalled() {
    Variant vApp;

    try {
        vApp = Variant::CreateObject("Access.Application");
        return true;
    } catch (EOleSysError &E) {
        if (E.ErrorCode == - 2147221005) {  //ошибка: недопустимая строка с указанием класса
            MessageBox(0, "Приложение не установлено", "", MB_OK);
            return false;
        } else {
            //не гарантировано, что результат правильный,
            //т.к. может быть другая причина невозможности запустить приложение
            MessageBox(0, "Неизвестная ошибка", "", MB_OK);
            return false;
        }
    }
}
//---------------------------------------------------------------------------
//для Word, Excel, Access
void __fastcall TfrmMain::btnIsAppInstalledClick(TObject *Sender) {
    if (bIsApplicationInstalled() == true) {
        MessageBox(0, "Приложение установлено", "", MB_OK);
    }
}
//---------------------------------------------------------------------------

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)