WPF 利用Process.Start()方法啟動指定路徑下的exe文件並傳遞參數接收參數
阿新 • • 發佈:2018-04-01
name 位置 處理 指定路徑 public AR res ini pri
WPF 利用Process.Start()方法啟動指定路徑下的exe文件並傳遞參數接收參數
在開發中遇到這樣一個需求:WPF程序A啟動WPF程序B並且傳遞參數,WPF程序B接收參數並處理。
如何來實現這樣的需求呢,網絡上已經有很多的文章描述這個問題,在這裏做個記錄。
首先通過如下代碼啟動WPF客戶端B:
private void ActionStartClientExcute() { var address = "exe位置"; Process process = new Process(); process.StartInfo.FileName= address; process.StartInfo.Arguments = "arg1 arg2"; process.StartInfo.UseShellExecute = true; process.Start(); }
在接收客戶端中添加如下代碼:
先定義一個MainApp類,這個類中必須有一個帶參數的Main(string[] args)函數,並且將帶有Main函數的MainApp類設置為啟動對象,
選擇當前項目->然後右鍵->選擇屬性->應用程序面板,設置啟動對象。
外部傳遞過來的參數就在string[] args裏面,例如傳遞的參數是字符串"arg1 arg2" ,則args的內容是args[0]="arg1",args[1]="arg2",每個數組元素間是以空格分隔的。
在項目中應該有一個App.xaml和一個App.xaml.cs文件。他們繼承至Application類,在App.xaml裏面設置程序的啟動頁面StartupUri="Window.xaml",也就是我們原先的程序界面。
在這裏我們需要在Main函數最後實例化這個App類:如代碼中InitApp方法。
public class MainApp { [STAThread] public static void Main(string[] args) {if (args != null && args.Length == 2) { string arg1= args[0].Trim(); string arg2= args[1].Trim(); } InitApp(); } public static void InitApp() { App app = new App(); app.InitializeComponent(); app.Run(); } }
這樣就可以成功實現WPF程序A打開WPF程序B,並傳遞參數這個需求啦!!!
WPF 利用Process.Start()方法啟動指定路徑下的exe文件並傳遞參數接收參數