0

OK、私はこのコードを使用して、ユーザーのマシンにインストールされているすべてのプログラムを取得しています。

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 に答える