我想通过程序获得office的版本,请问哪位大哥会,给段代码呗!!

解决方案 »

  1.   

    /// <summary>
            /// 获取当前某个版本Office的安装路径
            /// </summary>
            /// <param name="Path">返回当前系统Office安装路径</param>
            /// <param name="Version">返回当前系统Office版本信息</param>
            public static void GetOfficePath(out string Path,out string Version)
            {
                string strPathResult = "";
                string strVersionResult = "";
                string strKeyName = "Path";
                object objResult = null;
                Microsoft.Win32.RegistryValueKind regValueKind;
                Microsoft.Win32.RegistryKey regKey = null;
                Microsoft.Win32.RegistryKey regSubKey = null;            try
                {
                    regKey = Microsoft.Win32.Registry.LocalMachine;                if (regSubKey == null)
                    {//office97
                        regSubKey = regKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\8.0\Common\InstallRoot", false);
                        strVersionResult = "office97";
                        strKeyName = "OfficeBin";
                    }                if (regSubKey == null)
                    {//Office2000
                        regSubKey = regKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\9.0\Common\InstallRoot", false);
                        strVersionResult = "office2000";
                        strKeyName = "Path";
                    }                if (regSubKey == null)
                    {//officeXp
                        regSubKey = regKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\10.0\Common\InstallRoot", false);
                        strVersionResult = "officeXP";
                        strKeyName = "Path";
                    }                if (regSubKey == null)
                    {//Office2003
                        regSubKey = regKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\11.0\Common\InstallRoot", false);
                        strVersionResult = "office2003";
                        strKeyName = "Path";
                    }                if (regSubKey == null)
                    {//office2007 
                        regSubKey = regKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\12.0\Common\InstallRoot", false);
                        strVersionResult = "office2007";
                        strKeyName = "Path";
                    }                objResult = regSubKey.GetValue(strKeyName);
                    regValueKind = regSubKey.GetValueKind(strKeyName);
                    if (regValueKind == Microsoft.Win32.RegistryValueKind.String)
                    {
                        strPathResult = objResult.ToString();
                    }
                }
                catch (System.Security.SecurityException ex)
                {
                    throw new System.Security.SecurityException("您没有读取注册表的权限", ex);
                }
                catch (Exception ex)
                {
                    throw new Exception("读取注册表出错!", ex);
                }
                finally
                {                if (regKey != null)
                    {
                        regKey.Close();
                        regKey = null;
                    }                if (regSubKey != null)
                    {
                        regSubKey.Close();
                        regSubKey = null;
                    }
                }            Path = strPathResult;
                Version = strVersionResult;
            }
      

  2.   

    http://hi.baidu.com/goga/blog/item/cc8e242d915e423c359bf730.html
      

  3.   

    excelApp = new Excel.Application();
    excelApp.Version 
    HKEY_LOCAL_MACHINE/Software/Microsoft/Office/11.0/Excel/InstallRoot/
      

  4.   

    读注册可能是最直接的方法吧
    HKEY_LOCAL_MACHINE/Software/Microsoft/Office/11.0/Excel/InstallRoot/