Je dois enregistrer mon programme si le fournisseur VFPOLEDB est installé/enregistré? Je veux montrer un message et dire à l'utilisateur de télécharger et d'installer le fournisseur. Comment puis-je le vérifier en C#?Comment déterminer si le fournisseur VFPOLEDB est installé/enregistré?
6
A
Répondre
6
Comme suggéré ici: How to check if an OLEDB driver is installed on the system? vous pouvez rechercher la clé de VFPOLEDB dans le Registre. Ouvrez regedit
et recherchez VFPOLEDB, vous le trouverez dans plusieurs endroits; Vous êtes intéressé par l'un ici:
HKEY_CLASSES_ROOT\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}\1.0\0\win32
Nous savons donc vfpoledb devrait être enregistré ici:
HKEY_CLASSES_ROOT\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}
Nous pouvons tester si elle est là en utilisant cette C# expression:
(Registry.ClassesRoot.OpenSubKey("TypeLib\\{50BAEECA-ED25-11D2-B97B-000000000000}") != null)
Ou nous pouvons envelopper dans une classe statique agréable pour une réutilisation facile:
public static class CheckVfpOleDb
{
public static bool IsInstalled()
{
return Registry.ClassesRoot.OpenSubKey("TypeLib\\{50BAEECA-ED25-11D2-B97B-000000000000}") != null;
}
}
bonne solution, mais n'oubliez pas de fermer votre sous-clé au cas où il y aurait une exception. – juFo