【发布时间】:2019-04-13 16:32:43
【问题描述】:
如何从 Windows 窗体运行/调用 WPF 应用程序 (.exe)?我知道它可以如下所示完成:
Process.Start(@"C:\ABC\WPF.exe");
但我想从 winform 应用程序向 WPF 应用程序发送一些参数。怎么办?
【问题讨论】:
-
Process.Start()有一些重载。 One of them 允许提供参数。
如何从 Windows 窗体运行/调用 WPF 应用程序 (.exe)?我知道它可以如下所示完成:
Process.Start(@"C:\ABC\WPF.exe");
但我想从 winform 应用程序向 WPF 应用程序发送一些参数。怎么办?
【问题讨论】:
Process.Start() 有一些重载。 One of them 允许提供参数。
参考here的完整代码
您可以从您的 winform 应用程序中传递参数,例如
Process.Start(new ProcessStartInfo(@"C:\repos\WpfApp.exe", "Args from WinForms"));
并像在 WPF 应用程序中接收一样
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
if (e.Args.Length > 0)
{
MessageBox.Show($"You have passed:{e.Args.Length} arguments," +
$" value are {string.Join( ",",e.Args)}");
}
}
}
【讨论】:
"./WPFApp/Wpfapp.exe" 将不起作用。如果您在 winform 项目中包含 wpf 二进制文件,这应该可以:AppDomain.CurrentDomain.BaseDirectory + @"WPFApp\WpfApp.exe";
您可以使用带有几个参数的相同方法。 所以在你的情况下
var procStart = System.Diagnostics.Process.Start(@"C:\ABC\WPF.exe", params);
【讨论】: