2017-01-16 33 views
1

내 응용 프로그램의 새 인스턴스에 대한 명령 줄 인수를 이미 실행중인 명령 줄 인수로 전달하고 싶습니다. 지금까지, 나는 다음과 같은 시도 :이미 실행중인 응용 프로그램 인스턴스에 명령 줄 인수 전달

Program.cs

string[] Arguments = Environment.GetCommandLineArgs(); 

int iCurrentProcessID = -1; 
using (Mutex mutex = new Mutex(true, Arguments[1], out createdNew)) //Finding if application is running or not 
{ 
    Process current = Process.GetCurrentProcess(); 
    iCurrentProcessID = current.Id; 
    if (createdNew) 
    { 
     Application.Run(Frm1); 
    } 
    else 
    {   
     // Process current = Process.GetCurrentProcess(); 
     Process CurrentAutomation = Process.GetProcessById(iCurrentProcessID); 

     string[] strArguments = Environment.GetCommandLineArgs(); 

     if (!string.IsNullOrWhiteSpace(strArguments[2])) 
     { 
      frmMain.strEndtime = strArguments[2];    
     } 

Form.cs

public partial class frmMain : Form 
{ 
    public static string strEndtime; 
    //... 
} 

값은 두 번째 인스턴스에 올바르게 설정되어 있지만 설정되지 않은 첫 번째 (이전에 시작됨) 이 값들을 내 응용 프로그램의 다른 인스턴스로 어떻게 전달합니까?

+0

정확히 무엇을하려하십니까? 첫 번째 응용 프로그램 인스턴스의 속성 값을 두 번째 인스턴스의 인수로 설정 하시겠습니까? – slawekwin

+0

첫 번째 인스턴스에서 두 번째 인스턴스 악기를 사용하고 싶습니다. – Babu

+0

예를 들어 [this] (http://stackoverflow.com/questions/3793997/pass-arguments-to-running-application)가 도움이 될 수도있는 "C# passing parameters to runing application"과 같은 인터넷 검색을 시도해보십시오. – slawekwin

답변

1

아시다시피 WCF를 사용하여 프로세스간에 값을 보낼 수 있습니다. 기본 응용 프로그램은 net.pipe를 통해 WCF 서비스를 노출합니다. 이 내용을 확인 하시려면 link