运行args传递的应用程序作为控制台应用程序,否则运行为Win Form应用程序

时间:2012-01-11 14:04:33

标签: c# winforms console-application

我有一个应用程序,我希望像这样运行:

  • 如果args发送 - 我希望它表现为控制台应用程序

  • 如果未发送args - 我希望它以Windows窗体应用程序的形式运行

当我将输出类型设置为控制台并且未检测到args时,我启用视觉样式并运行。它运行良好,除了控制台窗口快速打开/关闭,这真的困扰我。有没有办法不显示控制台窗口?我正在寻找一种不创建它的方法。

2 个答案:

答案 0 :(得分:3)

我会反过来做它,使它成为一个WinForms应用程序,因为你在创建任何东西之前进入代码(在program.cs的main函数中)。

请参阅此链接:http://www.rootsilver.com/2007/08/how-to-create-a-consolewindow

答案 1 :(得分:3)

  1. 创建Windows.Forms应用程序
  2. 添加外部功能

    [System.Runtime.InteropServices.DllImport( "kernel32.dll" )]
    private static extern bool AllocConsole();
    
  3. 在您申请的主要方法中:

    if ( windows_app )
    {
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      Application.Run(new Form1());
    }
    else
    { 
        AllocConsole();
        Console.WriteLine( "foo" );
    }