0

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

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(我想要 calc,但不是 .exe)我该怎么做?

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

System.Diagnostics.Process.Start(exeName); 
4

1 回答 1

0

你可以使用 TrimEnd

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

编辑:

要从 启动程序System.Diagnostic.Process.Start,您不需要修剪“.exe”,您可以保留它,它会执行

于 2012-07-04T04:11:23.710 回答