[英]Run console application from other console app
我有一个C#控制台应用程序(A)。 我想以同步方式从应用程序A中执行其他控制台应用程序(B),以使B使用相同的命令窗口。 当B存在时,A应该能够读取B的退出代码。
怎么做? 我只需要有关如何在同一cmd窗口中运行此其他应用程序的小提示。
您可以使用Process.Start
启动其他控制台应用程序。
您将需要将ProcessStartInfo.RedirectOutput
设置为true
并将UseShellExecute
设置为false
来构造该过程,以便能够自己使用输出。
然后,您可以在进程上使用StandardOutput.ReadToEnd
读取输出。
您可以使用Process.Start启动另一个进程-不管它是否是控制台应用程序都没有关系。 如果您的应用程序已经在控制台窗口中运行,则新生成的应用程序也将使用该控制台窗口。
var proc = Process.Start( "...path to second app" );
proc.WaitForExit();
var exitCode = proc.ExitCode;
请确保准备好Process类上的文档,因为可能会影响辅助应用程序启动方式的各种细微差别。
通过调用以下配置,我能够在同一命令窗口中运行程序“ B”:
ConsoleColor color = Console.ForegroundColor;
ProcessStartInfo startinfo = new ProcessStartInfo(nameProgramB);
startinfo.CreateNoWindow = false;
startinfo.UseShellExecute = false;
Process p = Process.Start(startinfo);
p.WaitForExit();
Console.ForegroundColor = color;
这样,两个程序就像一个程序一样无缝运行。 “ nameProgramB”是程序“ B”的名称。 希望这可以帮助。
填写System.Diagnostics.ProcessStartInfo并将其传递给Process.Start
您可以在生成的进程上使用WaitForExit
,然后使用该进程的ExitCode
属性来查看返回值。
您可以将新控制台与旧控制台应用“包装”在一起,方法是将其包含在引用中,然后通过调用程序类的run方法中调用的任何方法将其启动
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.