この質問にはすでに答えがあります。
インストールされているソフトウェアをそれらの名前で開こうとしています
以下のコードを使用してそれらを開きますが、インストールされているすべてのソフトウェアを検出するわけではありません。
Process proc = new Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = progName;
proc.Start();
それらのすべてを名前で検出して開く方法はありますか。
progName
入力によって変わる文字列です。
この方法で試すことができます:
using Microsoft.Win32;
public List<string> GetAllInstalledPrograms()
{
List<string> res = new List<string>();
string registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using (Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key))
{
foreach (string subkey_name in key.GetSubKeyNames())
{
using (RegistryKey subkey = key.OpenSubKey(subkey_name))
{
res.Add(subkey.GetValue("DisplayName").ToString());
}
}
}
return res;
}
progName
?あなたはまさに何をしようとしていますか? - sab669Process.Start("notepad++.exe", someFilePath);
n ++がその機能を提供しているからだけです。テキストファイルを表示用のテキストボックスにドラッグアンドドロップできるカスタムのwinフォームアプリケーションを作成すると、Process.Start("myApplication.exe", someFilePath);
何もしません。 - sab669