Как определить, установлен ли провайдер VFPOLEDB? - PullRequest
6 голосов
/ 22 марта 2010

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

1 Ответ

6 голосов
/ 02 июля 2010

Как предлагается здесь: Как проверить, установлен ли в системе драйвер 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;
    }
}
...