从命令行退出.NET Windows窗体应用程序

时间:2011-01-25 17:10:38

标签: vb.net command-line

我编写了一个Windows应用程序,它可以接受一些命令行参数,并可以作为计划任务从命令行运行。这一切都运行正常,但我试图给用户一些反馈,如果他们从你启动它。

我已经使用了 Console Output from a Windows Forms Application 中描述的信息,并且在命令行上有一些输出,但是当应用程序完成时,它不会回退到命令提示符,除非你按Enter键。它只是坐在那里等待。

我错过了什么?

2 个答案:

答案 0 :(得分:0)

Console.WriteLine("Press enter to exit")
Console.ReadLine()
程序结束前

答案 1 :(得分:0)

您需要在执行后以某种方式暂停它,否则窗口将快速退出。有几种方法可以暂停,但在这种情况下,您希望能够将其作为计划任务(没有暂停)和用户(暂停)执行。

最简单的方法是创建用户运行的.BAT文件。例如:

@echo off
start /B /wait yourapp.exe
pause

start命令有几个您可能想要查看的参数。输入start /?在命令行上。

另一种方法是在应用程序中使用Console.ReadLine();System.Threading.Tread.Sleep(1000 * 10);之类的暂停。您可以使用命令行参数来调节它,例如:

static void Main(string[] args)
{
  // DoSomeStuff

  // Pause if not "nopause" is specified.
  if (args.Count == 0 || args[0] == "nopause")
  {
    Console.Write("Press any key to continue.");
    Console.ReadLine();
  }
}

(样本肯定可以写得更好,只是给你一个大概的想法)

使用上面的示例,计划任务可以使用nopause param调用.exe,如:myapp.exe nopause