1

C#プログラムを作成していますが、コンピューターにインストールされているソフトウェアのインストールパスを見つける必要があります。私が使用しなければならないのは、プログラムの名前(Google Chromeなど)とプロセス名(Chrome.exeなど)です。今必要なのはChrome.exeへのパスです。プログラム名またはプロセス名のいずれかを検索のパラメーターとして渡す場合、C#を使用してパスを見つけるにはどうすればよいですか?実際、chrome.exeを見つけてリンクを呼び出すカスタムアクションを作成したいと思います。その後、chrome.exeを検索するためのパスを使用し、デフォルトでchromeを介してWebサイトを開きます。私は何をすべきか..?

4

2 に答える 2

4

考慮すべきもう1つのオプションは、を使用してリンクを起動しProcess.Start()、オペレーティングシステムがデフォルトのブラウザを使用してリンクを開くようにすることです。それはおそらくユーザーが期待するものよりも多いでしょう。

WiXツールセットでは、からShellExecute標準カスタムアクションを使用して、その動作を無料で取得できますWixUtilExtension

于 2013-03-12T14:17:09.207 に答える
1

あなたはこのようなことを試すことができます

public string GetProcessPath(string name)
{
 Process[] processes = Process.GetProcessesByName(name);

 if (processes.Length > 0)
 {
    return processes[0].MainModule.FileName;
 }
 else
 {
    return string.Empty;
 }
}

または、Linqを使用できます

or you could do what you do but use linq

     Process element = ( from p in Process.GetProcesses()
                where p.ProcessName == "Chrome.exe"
                select p ).FirstOrDefault( );

ただし、同じ名前のプロセスが複数存在する可能性があるため、要件に応じてコードをさらに変更する必要があります。

お役に立てれば

于 2013-03-12T06:43:07.553 に答える