经过验证该方法可行,注意:参数可以多个传入,以空格分隔开的;
WPF中, 应用程序A 调用WPF编写的应用程序B的exe,参数传递给B的 主要方法:
1、在App.xaml.cs中的App类中,重载“OnStartup”函数
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
if (e.Args != null && e.Args.Count() > 0)
{
this.Properties["UserIndex"] = e.Args[0];
MessageBox.Show("外部参数进入app Application 数据:" + e.Args[0].ToString());
}
base.OnStartup(e);
}
}
2、在需要接收的窗体的loaded事件中或者构造函数中接收值
public RealStomachMainViewModel()
{
if (Application.Current.Properties["UserIndex"] != null)
{
string temp = Application.Current.Properties["UserIndex"].ToString();
MessageBox.Show("非常完美!!!进入主程 RealStomachMainViewModel 外部参数传入:" + temp);
}
}
3、测试代码:
private void Button_Click(object sender, RoutedEventArgs e)
{
string path = @"D:\Working\Debug\RealStomach_WPF.exe";
if (File.Exists(path))
{
Process.Start(path, "122");
}
}
4、如果是等待这个EXE程序执行完毕再执行下面的代码其实也是很简单的,只需要在后面使用WaitForExit()方法即可。代码如下
System.Diagnostics.Process.Start(Application.StartupPath + “你的应用程序.exe”).WaitForExit();
等待B程序关闭之后,才执行,这句后面的代码;