如何确定是否已安装/注册VFPOLEDB提供程序?

Joh*_*res 6 c# oledb provider

如果VFPOLEDB提供程序已安装/注册,我需要检查我的程序吗?我想显示一条消息并告诉用户下载并安装提供程序.我如何在C#中查看?

Cos*_*und 7

如下所示:如何检查系统上是否安装了OLEDB驱动程序?你可以在注册表中查找VFPOLEDB的密钥.打开regedit并搜索VFPOLEDB,你会在几个地方找到它; 你对这里的那个感兴趣:

HKEY_CLASSES_ROOT\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}\1.0\0\win32
Run Code Online (Sandbox Code Playgroud)

所以我们知道VFPOLEDB应该在这里注册:

HKEY_CLASSES_ROOT\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}
Run Code Online (Sandbox Code Playgroud)

我们可以测试它是否在那里使用这个C#表达式:

(Registry.ClassesRoot.OpenSubKey("TypeLib\\{50BAEECA-ED25-11D2-B97B-000000000000}") != null)
Run Code Online (Sandbox Code Playgroud)

或者我们可以将它包装在一个很好的静态类中以便于重用:

public static class CheckVfpOleDb
{
    public static bool IsInstalled()
    {
        return Registry.ClassesRoot.OpenSubKey("TypeLib\\{50BAEECA-ED25-11D2-B97B-000000000000}") != null;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 很好的解决方案,但不要忘记关闭子项,以防出现异常。 (2认同)