Muszę sprawdzić w moim programie, czy dostawca VFPOLEDB jest zainstalowany/zarejestrowany? Chcę wyświetlić komunikat i powiedzieć użytkownikowi, aby pobrać i zainstalować dostawcę. Jak mogę to sprawdzić w C#?Jak ustalić, czy dostawca VFPOLEDB jest zainstalowany/zarejestrowany?
6
A
Odpowiedz
6
Jak zasugerowano tutaj: How to check if an OLEDB driver is installed on the system? możesz wyszukać klucz VFPOLEDB w Rejestrze. Otwórz regedit
i wyszukaj VFPOLEDB, znajdziesz go w kilku miejscach; Jesteś zainteresowany w jednym tutaj:
HKEY_CLASSES_ROOT\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}\1.0\0\win32
Więc wiemy VFPOLEDB powinna zostać zarejestrowana tutaj:
HKEY_CLASSES_ROOT\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}
Możemy sprawdzić, czy to nie za pomocą tej C# wyrażenie:
(Registry.ClassesRoot.OpenSubKey("TypeLib\\{50BAEECA-ED25-11D2-B97B-000000000000}") != null)
Lub możemy go zawinąć w ładną klasę statyczną, aby ułatwić ponowne użycie:
public static class CheckVfpOleDb
{
public static bool IsInstalled()
{
return Registry.ClassesRoot.OpenSubKey("TypeLib\\{50BAEECA-ED25-11D2-B97B-000000000000}") != null;
}
}
ładne rozwiązanie, ale nie zapomnij zamknąć podklucza w przypadku, gdy jest jakiś wyjątek. – juFo