我正在制作一个C#程序,我需要找到安装在计算机上的一些软件的安装路径。 我需要处理的是,我有本程序的名称(例如Google Chrome),我有进程名称(例如Chrome.exe)。 我现在需要的是Chrome.exe的路径。如果我要传递程序名称或进程名称作为搜索参数,如何使用C#查找路径? 其实我想做一个自定义的动作,它会找到chrome.exe并调用一个链接。 之后,我将使用搜索chrome.exe的路径,并且我想通过chrome默认打开一个网站。我该怎么办..?如何知道exe的安装路径?
1
A
回答
4
另一种选择要考虑的是刚刚推出采用Process.Start()
并让操作系统使用默认浏览器打开该链接的链接。这可能会更符合用户的期望。
在WiX工具箱中,您可以使用WixUtilExtension
的ShellExecute standard custom action免费获得该行为。
+0
是的,罗布。这是非常好的方式。但是我只能在谷歌浏览器中使用我的应用程序。所以在启动时有很多检查和条件。所以对我而言,自定义操作是更好的选择。 – Anudeep 2013-03-13 07:15:47
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-12 06:41:53
有一个文件搜索器[这里](http://www.codeproject.com/Articles/35044/File-Searcher-in-C) – Marshal 2013-03-12 07:16:54
为什么不只是打开URL和让用户的操作系统决定哪个浏览器是默认的? – CodeCaster 2013-03-12 07:51:54