判断本机安装的excel版本

public List<string> ExcelVsion()
        {  
            List<string> list=new List<string>();
            List<string> lisemp = new List<string>();
            List<string> listvison = new List<string>();
            RegistryKey rk = Registry.LocalMachine;
            RegistryKey akey = rk.OpenSubKey(@"SOFTWARE\\Microsoft\\Office");
            RegistryKey csk;
            string str;
            hash = new Hashtable();
          
            string[] ss = akey.GetSubKeyNames();
            foreach (string s in ss)
            {
                string strem=@"SOFTWARE\\Microsoft\\Office"+@"\\"+s;
                csk=rk.OpenSubKey(strem);
                string[] csd = csk.GetSubKeyNames();
                foreach (string sk in csd)
                {
                    if (sk=="Excel")
                    {
                        str = strem + @"\\" + "Excel";
                        list.Add(str);
                        lisemp.Add(s);
                    }
                }
            }

            if (list!=null)
            {
                for (int index = 0; index < list.Count;index++ )
                {
                    list[index] = list[index] + @"\\InstallRoot\\";
                    RegistryKey f = rk.OpenSubKey(list[index]);
                    if (f!=null)
                    {
                        listvison.Add(lisemp[index]);
                    }
               
                }

               
            }
        
   return listvison;           
        }

返回空值则没有安装,返回值大于1则安装了多个。

原文地址:https://www.cnblogs.com/jinyuttt/p/2104238.html