2013-04-17 73 views
5

我剛剛創建與下面的代碼啓動過程中的應用如何將參數傳遞到另一個進程在C#

string [] args = {"a", "b"}; 
             Process.Start ("C: \ \ demo.exe" String.Join ("", args)); 

我希望能夠從這個應用程序的過程中,我已經通過參數推出。

我必須在啓動的過程的項目中輸入參數嗎? 我試圖把它們

static void Main (string [] args) {... 

但他們不以其他形式提供。 感謝您的幫助

+0

我真正的問題是,我啓動的過程(demo.exe)沒有參數,我需要知道我要在demo.exe項目中放置參數,謝謝 – Ldg

回答

12
Process p= new Process(); 
p.StartInfo.FileName = "demo.exe"; 
p.StartInfo.Arguments = "a b"; 
p.Start(); 
在DEMO.EXE

static void Main (string [] args) 
{ 
    Console.WriteLine(args[0]); 
    Console.WriteLine(args[1]); 
} 

Process.Start("demo.exe", "a b"); 

你問我如何保存這些PARAMS。您可以使用靜態屬性創建新類並將這些參數保存在那裏。

class ParamHolder 
{ 
    public static string[] Params { get; set;} 
} 

,並在主

static void Main (string [] args) 
{ 
    ParamHolder.Params = args; 
} 

得到PARAMS在程序中使用的任何地方:

Console.WriteLine(ConsoleParamHolder.Params[0]); 
Console.WriteLine(ConsoleParamHolder.Params[1]); 

+0

謝謝羅伯特,但我需要知道在aa.exe項目中,在運行應用程序後,他們將在參數中放置參數 – Ldg

+0

,這取決於編寫「demo.exe」的語言。如果它是C#,它們將在main函數中參數。如果你通過他們,因爲我上面寫了你應該工作沒有任何問題:) – Robert

+0

謝謝羅伯特,但noe我怎麼能稱這個參數在我推出的過程中的其他形式? – Ldg

1

主應用程序代碼:

var process = new Process(); 
process.StartInfo.FileName = "demo.exe" // Path to your demo application. 
process.StartInfo.Arguments = "a b c" // Your arguments 
process.Start(); 

在您的演示應用程序(我假設這是控制檯應用程序)

static void Main (string [] args) 
{ 
    var agrumentOne = args[0]; 
    var agrumentTwo = args[1]; 
    var agrumentThree = args[3]; 
} 

這裏argumentOne,argumentTwo,argumentThree將包含 「A」, 「B」 和 「C」。

+0

謝謝Faisal Hafeez,也是abobe的回答工作。再次感謝! – Ldg

相關問題