繁体   English   中英

从其他控制台应用程序运行控制台应用程序

[英]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()调用启动另一个进程。 此处示例显示了如何读取其他进程的输出并等待其完成。

您可以使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM