2013-03-30 1 views
3

VS2010에 해결책이 있습니다. 이 솔루션 아래에는 모든 사용자 인터페이스, 라이브러리 및 WPF 응용 프로그램의 단추를 클릭 할 때 실행하려는 콘솔 응용 프로그램이있는 기본 WPF 응용 프로그램이 있습니다. 내 솔루션의 구조는 다음과 유사합니다다른 프로젝트의 콘솔 응용 프로그램 실행

- Solution 
    - WPF App [this is my startup project] 
    - Library 
    - Another library 
    - Console application 

는 지금은 주위에 약간의 사냥을했을, 나는 사람들이 또한 내가 경로를 찾을 수이 존재에 대한 해결책을 코드와 클래스를 참조하고, 방법을 찾고 발견했습니다 실행 파일을 새 프로세스로 실행하십시오. 그러나 이것은 절대 경로 또는 상대 경로를 알아야 할 필요가 있으며 동일한 솔루션에 있어도 응용 프로그램을 시작할 수있는 유일한 방법인지 궁금합니다.

답변

5

예, 그렇습니다. 실행 파일의 절대 또는 상대 경로를 알아야합니다. 그러나 그것은 고장이 아닙니다. WPF exe와 Console exe를 bin\myconsole.exe 같은 하위 디렉토리 또는 같은 디렉토리에두면 어떨까요? 새로운 Process을 만들 때 Console exe의 이름을 으로 전달하면 Windows에서 실행 파일을 찾습니다.

using System; 
using System.Diagnostics; 
using System.ComponentModel; 

namespace MyProcessSample 
{ 
class MyProcess 
{ 
    // Opens the Internet Explorer application. 
    void OpenApplication(string myFavoritesPath) 
    { 
     // Start Internet Explorer. Defaults to the home page. 
     Process.Start("IExplore.exe"); 

     // Display the contents of the favorites folder in the browser. 
     Process.Start(myFavoritesPath); 
    } 

    // Opens urls and .html documents using Internet Explorer. 
    void OpenWithArguments() 
    { 
     // url's are not considered documents. They can only be opened 
     // by passing them as arguments. 
     Process.Start("IExplore.exe", "www.northwindtraders.com"); 

     // Start a Web page using a browser associated with .html and .asp files. 
     Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm"); 
     Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp"); 
    } 

    // Uses the ProcessStartInfo class to start new processes, 
    // both in a minimized mode. 
    void OpenWithStartInfo() 
    { 
     ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe"); 
     startInfo.WindowStyle = ProcessWindowStyle.Minimized; 

     Process.Start(startInfo); 

     startInfo.Arguments = "www.northwindtraders.com"; 

     Process.Start(startInfo); 
    } 

    static void Main() 
    { 
     // Get the path that stores favorite links. 
     string myFavoritesPath = 
      Environment.GetFolderPath(Environment.SpecialFolder.Favorites); 

     MyProcess myProcess = new MyProcess(); 

     myProcess.OpenApplication(myFavoritesPath); 
     myProcess.OpenWithArguments(); 
     myProcess.OpenWithStartInfo(); 
    } 
} 
} 

Look here.

+0

건배, 그때 나는 그걸 끝까지 따라 할거야. :) –