以传递参数的Console应用程序运行应用程序,否则以Win-Form应用程序运行

本文关键字:应用程序 运行 Win-Form Console 参数 | 更新日期: 2023-09-27 18:19:56

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

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

  • 如果args未发送-我希望它作为windows窗体应用程序运行

当我将输出类型设置为控制台时,当未检测到args时,我将启用视觉样式并运行。它工作得很好,只是控制台窗口打开/关闭很快,这真的让我很困扰。有没有办法不让控制台窗口出现?我正在寻找一种完全不创建它的方法。

以传递参数的Console应用程序运行应用程序,否则以Win-Form应用程序运行

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

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

  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" );
    }