我有一个带有命令行参数的child.exe。我需要从另一个parent.exe应用程序启动该child.exe,并需要将不同的命令行参数传递给该child.exe。 我尝试使用以下代码。
Process process = new Process();
process.StartInfo.FileName = @"R:\bin\child.exe";
process.StartInfo.Arguments = "CONSUMER";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.CreateNoWindow = true;
process.Start();
process = new Process();
process.StartInfo.FileName = @"R:\bin\child.exe";
process.StartInfo.Arguments = "SUPERVISOR";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.CreateNoWindow = true;
process.Start();
但问题是每次调用process.Start()时,都会创建一个单独的exe。我只需要运行一个child.exe实例来接受不同的命令行参数。 任何帮助表示赞赏。
答案 0 :(得分:4)
当然,如果您想通过某种IPC传递现有流程的新参数,那么它将创建一个新流程。
答案 1 :(得分:0)
答案 2 :(得分:0)
或者将程序集动态加载到parent.exe进程并调用其中的方法。您甚至可以在隔离的AppDomain中执行此操作,如果child.exe是使用托管代码编写的,则可能是您真正想要的解决方案。看看这篇关于初学者的MSDN文章:
答案 3 :(得分:-4)
在代码中创建一个bat文件,它将包含你的参数。父exe将调用bat文件。在父结束后删除bat文件。