检查是否已安装MS Access 2010

我正在维护一个应用程序,该应用程序当前正在检查是否已安装MS Access 2007。 它通过validation注册表项是否存在来实现此目的。

public bool IsAccess2007Installed() { RegistryKey rootKey = Registry.ClassesRoot.OpenSubKey(@"Access.Application.12\shell\open\command", false); return rootKey != null; } 

我该如何validation是否安装了MS Access 2010? 或者更好的是,我如何validation是否安装了MS Access 2007或更高版本?

假设用户具有管理员权限。

您可以检查此键的值(例如Access.Application.12)。 HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes下\ Access.Application \ CURVER

所以你的代码行将是:

 RegistryKey rootKey = Registry.ClassesRoot.OpenSubKey(@"Access.Application\CurVer", false); if (rootKey == null) return false; string value = rootKey.GetValue("").ToString(); int verNum = int.Parse(value.subString(value.indexOf("Access.Application."))); if (value.StartsWith("Access.Application.") && verNum >= 12) { return true; }