2017-01-16 164 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

嘗試搜索類似「C#傳遞參數運行應用程序」,例如[this](http://stackoverflow.com/questions/3793997/pass-arguments-to-running-application)可能有幫助 – slawekwin

回答

1

據我所知,您可以利用WCF在進程之間發送值。你的主應用程序通過net.pipe公開一個WCF服務。點擊這裏查看link

相關問題