2013-03-12 4 views
1

C# 프로그램을 만들고 있는데 컴퓨터에 설치된 일부 소프트웨어의 설치 경로를 찾아야합니다. 내가해야 할 일은 프로그램 이름 (예 : Chrome)을 가지고 프로세스 이름 (예 : Chrome.exe)을 가지고 있다는 것입니다. 지금 필요한 것은 Chrome.exe의 경로입니다. 검색을위한 매개 변수로 프로그램 이름이나 프로세스 이름을 전달할 경우 어떻게 C#을 사용하여 경로를 찾을 수 있습니까? 사실 chrome.exe를 찾아 링크를 호출하는 사용자 지정 동작을 만들고 싶습니다. 그런 다음 chrome.exe 검색 경로를 사용하고 크롬을 통해 웹 사이트를 열어두기를 원합니다. 어떻게해야합니까 ..?exe ​​설치 경로를 어떻게 알 수 있습니까?

+0

지금까지 시도한 것이 있습니까? [FAQ]와 [ask]을 읽어주십시오 –

+0

파일 검색자가 있습니다 [여기] (http://www.codeproject.com/Articles/35044/File-Searcher-in-C) – Marshal

+1

URL을 열지 않고 사용자의 OS가 어떤 브라우저가 기본 브라우저인지 결정하게 하시겠습니까? – CodeCaster

답변

4

단지 Process.Start()를 사용하여 운영 체제가 링크를 열려면 기본 브라우저를 사용시키는 링크를 출시 고려해야 할 또 다른 옵션을하는 데 도움이됩니다. 아마도 사용자가 기대하는 것보다 더 많을 것입니다.

WiX 도구 세트에서 WixUtilExtensionShellExecute standard custom action을 사용하여 무료로 해당 동작을 얻을 수 있습니다.

+0

예, 롭. 이것은 아주 좋은 방법입니다. 하지만 내 크롬 크롬에 내 응용 프로그램에있다. 따라서 발사 시간에는 여러 가지 점검 및 조건이 있습니다. 그래서 내 경우에는 맞춤 동작이 더 나은 옵션입니다. – Anudeep

1

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

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

뭔가를 시도 할 수 또는 당신이

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(); 

그러나이 더에 따라 코드를 수정해야 낭포 같은 이름을 가진 여러 과정이있을 수 Linq에 사용할 수 귀하 요구 사항.

희망이