2
通常情况下,调用命令提示符窗口的应用程序不会等待其退出。一旦我输入myFormApp.exe
并按下回车键,将会显示一个表格,命令提示符立即移动到下一行。启动一个C#Windows应用程序,然后等待命令行退出
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源代码?
添加AllocConsole
到Windows应用程序将显示控制台,但它不会让命令提示符等待退出。
if (args.Length > 0)
{
// Command line given, display console
AllocConsole();
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
任何建议将受到赞赏。谢谢!
当执行由包装控制台应用程序双击,会显示命令提示符。这是不希望的行为。有什么办法可以避免它? – PandaDrunkard
不,不是真的。您可以将包装器应用程序的输出类型更改为Windows应用程序,这会使窗口不出现,但如果从控制台启动它,则不会等待执行完成。不太确定你想在这里实现什么,可能是为了解决错误的问题。阻止提示移动到新行不能解决任何问题。用户可以随时打开新的提示并执行任何操作。 – Bartosz
您可以使用互操作来隐藏和显示控制台窗口。在启动时隐藏它,在退出时显示。这样,如果您在Windows中双击您的应用程序,则不会显示任何控制台,如果您从现有控制台启动该控制台,它将隐藏WinForms应用程序执行时间,但在退出时再次显示。 http://stackoverflow.com/questions/3571627/show-hide-the-console-window-of-a-c-sharp-console-application 我wound't劝这样做,虽然。 – Bartosz