c#查询部署机器的Office应用程序的版本
来源:互联网 发布:网络攻防技术pdf 编辑:程序博客网 时间:2024/05/01 06:31
检测office的应用程序的版本,
public class OfficeVersion { /// <summary> /// 获取Access的提供程序 /// </summary> /// <returns>是否设置成功</returns> public static string GetAccessProvider() { //检测客户机器上安装的Access版本2000/2003/2007/2010 string version = OfficeVersion.GetAppVersion("Access"); string provider = string.Empty; switch (version) { case "Access 2007": case "Access 2010": provider = "Microsoft.ACE.OLEDB.12.0"; break; case "Access 2000": case "Access xp": case "Access 2003": //default: provider = "Microsoft.Jet.OLEDB.4.0"; break; } return provider; } //检测客户机器上安装的应用程序版本2000/2003/2007/2010 public static string GetAppVersion(string officeAppName) { string result = string.Empty; RegistryOperate registry = new RegistryOperate("LOCAL_MACHINE"); string[] officeKey = registry.GetAllSubKey(@"SOFTWARE\\Microsoft\\Office\\"); List<string> listOfficeKey = new List<string>(officeKey); if (listOfficeKey.Count < 1) { return "No Office"; } if (listOfficeKey.Contains("14.0"))//Office 2010 { string[] keyItem = registry.GetAllSubKey(@"SOFTWARE\\Microsoft\\Office\\14.0"); List<string> subKeyItem = new List<string>(keyItem); if (IsExistSubKey(@"SOFTWARE\\Microsoft\\Office\\14.0", officeAppName)) { result = string.Format("{0} 2010", officeAppName); } } if (result.Equals("") && listOfficeKey.Contains("12.0"))//Office 2007 { string[] keyItem = registry.GetAllSubKey(@"SOFTWARE\\Microsoft\\Office\\12.0"); List<string> subKeyItem = new List<string>(keyItem); if (IsExistSubKey(@"SOFTWARE\\Microsoft\\Office\\12.0", officeAppName)) { result = string.Format("{0} 2007", officeAppName); } } if (result.Equals("") && listOfficeKey.Contains("11.0"))//Office 2003 { string[] keyItem = registry.GetAllSubKey(@"SOFTWARE\\Microsoft\\Office\\11.0"); List<string> subKeyItem = new List<string>(keyItem); if (IsExistSubKey(@"SOFTWARE\\Microsoft\\Office\\11.0", officeAppName)) { result = string.Format("{0} 2003", officeAppName); } } if (result.Equals("") && listOfficeKey.Contains("10.0"))//Office xp { string[] keyItem = registry.GetAllSubKey(@"SOFTWARE\\Microsoft\\Office\\10.0"); List<string> subKeyItem = new List<string>(keyItem); if (IsExistSubKey(@"SOFTWARE\\Microsoft\\Office\\10.0", officeAppName)) { result = string.Format("{0} xp", officeAppName); } } if (result.Equals("") && listOfficeKey.Contains("9.0"))//Office 2000 { string[] keyItem = registry.GetAllSubKey(@"SOFTWARE\\Microsoft\\Office\\9.0"); List<string> subKeyItem = new List<string>(keyItem); if (IsExistSubKey(@"SOFTWARE\\Microsoft\\Office\\9.0", officeAppName)) { result = string.Format("{0} 2000", officeAppName); } } return result; } /// <summary> /// 判断注册表路径是否存在子项 /// </summary> /// <param name="path">注册表路径</param> /// <param name="value">子项名</param> /// <returns></returns> private static bool IsExistSubKey(string path, string key) { RegistryOperate registry = new RegistryOperate("LOCAL_MACHINE"); string[] keyItem = registry.GetAllSubKey(path); List<string> listKeyItem = new List<string>(keyItem); if (listKeyItem.Contains(key)) { return true; } return false; } }
- c#查询部署机器的Office应用程序的版本
- Office PIA:关于Office PIA应用程序的部署
- SCCM 中查询 Office 的 service pack 版本
- 改变 Office 的版本
- 让C# Excel导入导出,支持不同版本的Office
- 让C# Excel导入导出,支持不同版本的Office
- 让C# Excel导入导出,支持不同版本的Office
- 让C# Excel导入导出,支持不同版本的Office
- C#生成的应用程序版本如何修改
- JavaScript判断office的版本
- HOW TO:获取当前Office应用程序的安装版本语言等信息
- C#之二十二 WIN应用程序的安装部署
- Silverlight2应用程序的部署
- Silverlight应用程序的部署
- Qt5应用程序的部署
- Qt 应用程序的部署
- Qt 应用程序的部署
- web应用程序的部署
- spring定时器
- Ubuntu 10.04 Server下编译libjingle-0.6.14
- poj 3522 Slim Span(枚举+最小生成树)
- QT发布程序中文乱码完全解决方案 Qt for Windows
- Apache Shiro 架构
- c#查询部署机器的Office应用程序的版本
- undefined reference to `clock_gettime' 链接错误问题解决
- 一个基于HTML与JavaScript的Wizard演示
- python http
- c基础学习 - 指针
- [Bluetooth]蓝牙协议栈构架
- 关于进段时间的工作总结
- c#调用C接口时指针参数的接入
- .net中文化和区域属性CultureInfo对数据转换的影响