通常,在命令提示符下调用Windows应用程序不会等待退出。输入myFormApp.exe
并按回车键后,将显示一个表单,命令提示符会立即移至下一行。
C:\> myFormApp.exe
C:\> # this line will display immediately
我知道使用cmd /c
将等待应用程序退出。
C:\> cmd /c myFormApp.exe
C:\> # this line will display after myFormApp.exe closed
但即使缺少cmd /c
,我也想等待。
有没有办法阻止命令提示符移动到新行,编辑myFormApp.exe源代码?
向Windows应用程序添加AllocConsole
将显示控制台,但它不会使命令提示符等待退出。
if (args.Length > 0)
{
// Command line given, display console
AllocConsole();
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
任何建议将不胜感激。谢谢!
答案 0 :(得分:1)
您可以编写一个包装winforms应用程序的简单控制台应用程序。您可以在控制台应用程序中启动一个进程:
static void Main(string[] args)
{
Console.WriteLine("Hello!");
var process = new Process() { StartInfo = new ProcessStartInfo { FileName = @"WindowsFormsApplication1.exe" } };
process.Start();
process.WaitForExit();
Console.WriteLine("bye bye!");
}
或者,您可以添加对winforms应用程序的引用,并在控制台应用程序中实例化winforms类:
static void Main(string[] args)
{
Console.WriteLine("Hello!");
var mainForm = new WindowsFormsApplication1.Form1();
mainForm.ShowDialog();
Console.WriteLine("bye bye!");
}
答案 1 :(得分:1)
无需编写其他应用。 Windows-start
中带有/wait
选项的此类文件已经存在。它不仅会等待您的应用程序完成执行,还将设置返回的错误级别(也称为ExitCode)。