也就是我们原先的程序界面

时间:2021-10-13 03:59:43

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,并通报参数这个需求啦!!!