我怎么知道exe的安装路径?

时间:2013-03-12 06:39:38

标签: c# wix wix3.6 wix-extension

我正在制作一个C#程序,我需要找到安装在计算机上的某些软件的安装路径。 我必须使用的是,我有程序的名称(例如谷歌浏览器),我有进程名称(例如Chrome.exe)。 我现在需要的是Chrome.exe的路径。如果我要将程序名称或进程名称作为搜索参数传递,我如何使用C#查找路径? 实际上我想做一个自定义动作,它会找到chrome.exe并调用一个链接。 之后,我将使用搜索chrome.exe的路径,我想通过chrome默认打开一个网站。我该怎么办..?

2 个答案:

答案 0 :(得分:4)

另一个需要考虑的选择是使用Process.Start()启动链接并让操作系统使用默认浏览器打开链接。这可能会更符合用户的期望。

在WiX工具集中,您可以使用WixUtilExtension中的ShellExecute standard custom action免费获取该行为。

答案 1 :(得分: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( );

但是可以有多个具有相同名称的进程。因此,您必须根据您的要求进一步修改代码。

希望这会有所帮助