C# 判断本机是否安装Excel详解

渎憺硠
2013-10-14 · TA获得超过3280个赞
知道小有建树答主
回答量:1051
采纳率:0%
帮助的人:760万
展开全部
方法一:异常判断发(根据返回结果形式) // 使用地方 private void buttonOk_Click(object sender, EventArgs e){if (codeboolisExcelInstalled()){MessageBox.Show("本机已安装Excel文件");}else{MessageBox.Show("当前系统没有发现可执行的Excel文件, 如需使用Excel功能请先安装office 2003", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);}}//判断本机是否安装Excel文件方法 private bool codeboolisExcelInstalled(){Type type = Type.GetTypeFromProgID("Excel.Application"); return type != null;}方法二:注册表检查发 判断注册表里有没有SOFTWARE\\Microsoft\\Office\\12.0\\Word\\InstallRoot\\Excel.exe 其中12.0 11.0需要同时判断,因为11.0是office 2003 12.0是office 2007 // 使用地方 private void buttonOk_Click(object sender, EventArgs e){if (ExistsRegedit()){MessageBox.Show("本机已安装Excel文件");}else{MessageBox.Show("当前系统没有发现可执行的Excel文件, 如需使用Excel功能请先安装office 2003", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);}}/// <summary /// Self_Variable:查询注册表某个键值是否存在 /// </summary /// <returns</returns public bool ExistsRegedit(){bool ifused = false; RegistryKey rk = Registry.LocalMachine; RegistryKey akey = rk.OpenSubKey(@"SOFTWARE\\Microsoft\\Office\\11.0\\Word\\InstallRoot\\"); RegistryKey akeytwo = rk.OpenSubKey(@"SOFTWARE\\Microsoft\\Office\\12.0\\Word\\InstallRoot\\"); //检查本机是否安装Office2003 if (akey != null){string file03 = akey.GetValue("Path").ToString(); if (File.Exists(file03 + "Excel.exe")){ifused = true;}}//检查本机是否安装Office2007 if (akeytwo != null){string file07 = akeytwo.GetValue("Path").ToString(); if (File.Exists(file07 + "Excel.exe")){ifused = true;}}return ifused;}提示: 方法一:本人觉得方法一比较简单,方法一已经测试过。方法二:是遍历注册表的方法,比较麻烦,上面的例子已经经过测试,如问题,查看注册表,在进行适当的内容调整(一般没问题)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式