日期:2014-05-17  浏览次数:21248 次

怎么通过注册表得到当前系统盘的Program Files (x86)或者Program Files 文件路径
我想找到某个软件的安装路径,写了一个扫描exe文件的方法,担当实际运用时发现有很多问题,有些电脑上有双系统,两个系统都安装了这个软件。这时候扫描该exe文件得到路径进行使用时就会出错。所以想到通过注册表来获取当前系统软件安装的位置。
 
                    List<string> a = new List<string>();
                    foreach (string keyName in key.GetSubKeyNames())//遍历子项名称的字符串数组
                    {
                        a.Add(keyName);
                        using (RegistryKey key2 = key.OpenSubKey("ArcGIS Desktop 10", false))//遍历子项节点
                        {
                            if (key2 != null)
                            {
                                string softwareName = key2.GetValue("DisplayName", "").ToString();//获取软件名
                                string installLocation = key2.GetValue("InstallLocation", "").ToString();//获取安装路径
                                if (!string.IsNullOrEmpty(installLocation))
                                {

                                    listView1.Items.Add(installLocation);
                                }
                            }
                        }
                        //ArcObjects SDK for the Microsoft .NET Framework
                    }

通过数组中的路径去找需要用调用的exe程序时,发现没有。而是存在C:\Program