如果vfpoledb提供程序已安装/注册,我需要签入我的程序?我想显示一条消息,告诉用户下载并安装提供程序。我怎么在C_登记呢?
最佳答案
这里建议:How to check if an OLEDB driver is installed on the system?您可以在注册表中查找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;
}
}