在C#中列出程序的exe名称?

时间:2012-07-04 04:09:44

标签: c# string

好的,我正在使用此代码来获取用户计算机上的所有已安装程序。

string uninstallKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
        using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(uninstallKey))
        {
            foreach (string skName in rk.GetSubKeyNames())
            {
                using (RegistryKey sk = rk.OpenSubKey(skName))
                {
                    try
                    {
                        listBox1.Items.Add(sk.GetValue("DisplayName"));
                    }
                    catch
                    {
                        MessageBox.Show("Error", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }

所有程序都列在列表框中。我如何获得该程序的“programName”.exe。像计算器是calc.exe(我想要计算,但不是.exe)我该怎么做?

我这样做,所以我可以说:

System.Diagnostics.Process.Start(exeName); 

1 个答案:

答案 0 :(得分:0)

你可以使用TrimEnd

listBox1.Items.Add(sk.GetValue("DisplayName").ToString().TrimEnd(".exe".ToCharArray()));

编辑:

要从System.Diagnostic.Process.Start启动某个程序,您无需修剪“.exe”,您可以将其保留为原样,并且可以执行