Как определить, установлен / зарегистрирован провайдер VFPOLEDB?

Мне нужно проверить в моей программе, установлен / зарегистрирован ли провайдер VFPOLEDB? Я хочу показать сообщение и посоветовать пользователю загрузить и установить провайдера. Как это проверить на C #?


person John Sheares    schedule 22.03.2010    source источник


Ответы (1)


Как предлагается здесь: Как проверить, установлен ли в системе драйвер OLEDB? вы можете найти ключ VFPOLEDB в реестре. Откройте regedit и найдите VFPOLEDB, вы найдете его в нескольких местах; Вас интересует вот этот:

HKEY_CLASSES_ROOT\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}\1.0\0\win32

Итак, мы знаем, что VFPOLEDB должен быть зарегистрирован здесь:

HKEY_CLASSES_ROOT\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}

Мы можем проверить, есть ли он там, используя это выражение C #:

(Registry.ClassesRoot.OpenSubKey("TypeLib\\{50BAEECA-ED25-11D2-B97B-000000000000}") != null)

Или мы можем обернуть его красивым статическим классом для удобного повторного использования:

public static class CheckVfpOleDb
{
    public static bool IsInstalled()
    {
        return Registry.ClassesRoot.OpenSubKey("TypeLib\\{50BAEECA-ED25-11D2-B97B-000000000000}") != null;
    }
}
person Cosmin Prund    schedule 02.07.2010
comment
хорошее решение, но не забудьте закрыть подключ на случай исключения. - person juFo; 17.01.2013