我正在维护一个应用程序,该应用程序当前正在检查是否已安装MS Access 2007。它通过验证注册表项是否存在来实现此目的。
public bool IsAccess2007Installed()
{
RegistryKey rootKey = Registry.ClassesRoot.OpenSubKey(@"Access.Application.12\shell\open\command", false);
return rootKey != null;
}
如何验证是否已安装MS Access 2010?或者更好的是,我如何验证是否安装了MS Access 2007或更高版本?
假设用户具有管理员权限。
答案 0 :(得分:1)
您可以检查此键的值(例如Access.Application.12)。 HKEY_LOCAL_MACHINE \ SOFTWARE \类\ 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; }