1. 程式人生 > >WPF 利用Process.Start()方法啟動指定路徑下的exe文件並傳遞參數接收參數

WPF 利用Process.Start()方法啟動指定路徑下的exe文件並傳遞參數接收參數

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文件並傳遞參數接收參數