如果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;
    }
}

07-25 20:12