Мне нужно проверить в моей программе, установлен / зарегистрирован ли провайдер VFPOLEDB? Я хочу показать сообщение и посоветовать пользователю загрузить и установить провайдера. Как это проверить на C #?
Как определить, установлен / зарегистрирован провайдер VFPOLEDB?
Ответы (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
хорошее решение, но не забудьте закрыть подключ на случай исключения.
- person juFo; 17.01.2013