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


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,並傳遞參數這個需求啦!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM