C# 判断本机是否安装Excel详解
1个回答
展开全部
方法一:异常判断发(根据返回结果形式)
// 使用地方
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;}提示: 方法一:本人觉得方法一比较简单,方法一已经测试过。方法二:是遍历注册表的方法,比较麻烦,上面的例子已经经过测试,如问题,查看注册表,在进行适当的内容调整(一般没问题)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询