之前開發項目,一直都使用的是外殼程序加子程序的模式,通過外殼程序去啟動子程序,外殼程序和子程序之間的通信,是使用配置文件完成的。
我總覺得這樣通信很麻煩,因為外殼程序需要對配置文件進行更改和寫入,然后子程序又要讀取信息。而且整合的時候,會導致有很多配置文件,而且需要對路徑做很多處理和限制。
我發現Process.Start()函數中,是可以傳遞參數的。
也就是說,我們是可以在使用Process.Start()函數啟動外部程序時,傳遞參數的進行通信的。
具體操作如下:
public void StartEXE() { ProcessStartInfo processStartInfo = new ProcessStartInfo(); processStartInfo.FileName = "C:/Users/Administrator/Desktop/Test/Demo.exe"; processStartInfo.Arguments = "啟動 程序 1 2 3"; Process.Start(processStartInfo); }
需要注意的是,如果存在多個參數的話,參數之間需要使用空格進行分隔。
外殼程序已經傳遞了參數,那么子程序如何接受參數呢?具體操作如下:
private void Start() { string[] args = Environment.GetCommandLineArgs(); text.text = args.Length.ToString(); for (int i = 0; i < args.Length; i++) { text.text += "\n" + "Arg" + i + ": " + args[i]; } }
我將所有的參數信息,打印在了一個Text上面。運行效果圖如下:
很簡單的一個知識點,有封裝好的API可以直接使用,在這里記錄一下,忘了的時候可以打開看一看。