2011-10-24 24 views
0

目前,我開始執行文件這樣:C#開始EXE與參數和保存

System.Diagnostics.ProcessStartInfo processStartInfo = new System.Diagnostics.ProcessStartInfo(); 
    processStartInfo.FileName = "Stackoverflow.exe"; 
    processStartInfo.WorkingDirectory = ConfigurationManager.AppSettings["Path"] + name + @"\bin"; 
    System.Diagnostics.Process.Start(processStartInfo); 

如果我想補充的參數,我會做在這裏正確的?:

System.Diagnostics.Process.Start(processStartInfo, params); 

如果不是,在哪裏?

另一件事是,我想保存exe的params,是否自動發生,或者我必須在打開時設置它?如果是這樣,那我該如何實現呢?

編輯:

我的意思與保存是.. 我用文本框形式,從那裏ü可以啓動一個EXE,通過實例Stackoverflow.exe,並在文本框ü可以寫:「你好「現在下一次ü打開表單並在窗體中選擇EXE,有‘你好’還是寫的,這意味着,它已被保存,這就是我想要的

+1

是的......如果你想保存使用哪些參數,你將不得不自己做 –

回答

4

設置ProcessStartInfo.Arguments財產。它只是一串空格分隔的參數。你需要引用任何包含空格的路徑名稱。這有點痛苦,但那是什麼在那裏:(

它不是很清楚你的意思是「保存」參數 - 什麼都不會記得你最後使用的參數用於啓動一個進程,並在下一次應用相同的東西,不,你必須自己做,你要怎麼做才能取決於你在做什麼 - 你可以使用每個用戶的設置,例如,以同樣的方式與任何其他設置。

+0

外觀編輯,瞭解我的意思是保存 – eMi

+0

@eMi:正確 - 這與你如何開始一個過程是完全正交的。這只是保存用戶設置的問題。請參閱http://msdn.microsoft.com/en-us/library/aa730869.aspx –

+0

好吧,這意味着,我會拯救其他地方..好吧thx 4您的答案 – eMi

0

你會在processStartInfo.Arguments設置參數。

我不知道你保存它們的意思,但它只是一個字符串,它不會做任何事情你可以隨心所欲地做任何事情這串自己。

+0

看編輯,以知道我的意思是保存 – eMi

1

您可以簡單地將第二個參數中的參數傳遞給Process.Start方法。即:

Process.Start("IExplore.exe", "www.northwindtraders.com"); 

或者,您可以使用ProcessStartInfo。即:

ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe"); 
startInfo.Arguments = "www.northwindtraders.com"; 
Process.Start(startInfo); 

有在msdn's class reference

+0

雅,我這樣做,只是想知道它的權利如此 – eMi

0

你也可以在你的ProcessStartInfo類使用Arguments屬性其他一些有用的例子。

此外,參數不會被保存,爲什麼他們?如果您在桌面上創建了一個快捷方式,那麼這些參數將存儲在那裏,您的可執行文件將使用存儲的參數進行調用,但這與您的應用程序無關。