检查安装的 Access 2010 是否有例外

用户9250176

我正在尝试检查是否使用 C# 安装了 Access 2010,我尝试使用此答案

他使用那里subString代替SubstringindexOf代替IndexOf

所以在我的代码中,我用Substringand完成了它IndexOf,但是当我运行它时给出了FormatException,这是我的代码:

RegistryKey rootKey = Registry.ClassesRoot.OpenSubKey(@"Access.Application\CurVer" , false);

if (rootKey == null)
{     
    MessageBox.Show("Access 2010 not installed on this machine");
}

String value = rootKey.GetValue("").ToString();
int verNum = 0;
try
{
    verNum = int.Parse(value.Substring(value.IndexOf("Access.Application.")));
} catch (FormatException fe)
{
    MessageBox.Show(fe.ToString());
}

if (value.StartsWith("Access.Application.") && verNum >= 12)
{       
    MessageBox.Show("Access 2010 already installed on this machine");
}
一般

地球上没有办法你所拥有的东西会起作用(只是说)

您显然已经从这里或一些衍生产品获得了此代码检查是否安装了 MS Access 2010 ......而且它是非常错误的

首先

字符串.IndexOf

报告此实例中第一次出现指定字符串的从零开始的索引

这意味着它会返回 0 如果它找到 "Access.Application."

第二

字符串.子字符串

从此实例中检索子字符串。子字符串从指定的字符位置开始,一直到字符串的末尾。

这意味着,给定 0 将返回"Access.Application.",这不是int

最后

Int32.Parse

如果不是,则抛出异常 int


我不确定找到访问版本号的正确方法或如何检测是否安装了访问。然而,如果版本号真正的生活背后"Access.Application.",你想使用String.LastIndexOf方法传递.

至少使用int.TryParse来确保它不会抛出异常

例子

var somekey = "Access.Application.2099";
var lastIndex = somekey.LastIndexOf(".");

if (lastIndex > 0)
   Console.WriteLine("We have a chance");

var substr = somekey.Substring(lastIndex + 1);

Console.WriteLine(substr);

int verNum = 0;

if (int.TryParse(substr, out verNum))
{
   Console.WriteLine("found a version maybe : " + verNum);
}
else
{
   Console.WriteLine("No cigar");
}

演示在这里

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Access 2010 VBA如何检查列表框的值

来自分类Dev

Inno Setup-检查是否安装了MS Access x64 Engine

来自分类Dev

在Access 2010表单的左侧具有垂直滚动条

来自分类Dev

选择具有最大字段总数的记录(Access 2010)

来自分类Dev

Access 2010参数查询-AND OR

来自分类Dev

从Java``插入''Access 2010

来自分类Dev

Access 2010表单查询

来自分类Dev

检查excel 2010 vba中是否存在目录

来自分类Dev

检查是否安装了grunt?

来自分类Dev

如何检查插件是否安装?

来自分类Dev

检查是否安装了memcached?

来自分类Dev

检查是否安装了东西

来自分类Dev

Installshield 2010无法安装

来自分类Dev

Installshield 2010无法安装

来自分类Dev

Access 2010报表中的要点

来自分类Dev

在Access 2010中锁定表

来自分类Dev

Access 2010限制查询结果

来自分类Dev

Access 2010总和错误的结果

来自分类Dev

导出MS Access 2010 SQL

来自分类Dev

Access 2010-SubReports间距

来自分类Dev

Access 2010记录作为参数

来自分类Dev

检查是否已安装所有子组件

来自分类Dev

检查是否已安装所有子组件

来自分类Dev

我可以以编程方式获得MS Access 2010中的所有导入/导出规范吗?

来自分类Dev

如何使用VBA循环从多个表中删除所有记录?Access 2010

来自分类Dev

当所有复选框切换Access 2010时填写字段

来自分类Dev

在Excel文件中的现有内容之后传输Access 2010结果表

来自分类Dev

使用Access 2010 VBA列出所有打开的Excel工作簿

来自分类Dev

在Access 2010表中显示给定字段筛选器的所有记录