Запустите приложение как консольное приложение с переданными аргументами, иначе запустите приложение Win Form - PullRequest
5 голосов
/ 11 января 2012

У меня есть приложение, которое я хочу запустить следующим образом:

  • если аргументы отправлены - я хочу, чтобы оно работало как консольное приложение

  • если аргументы не отправлены - я хочу, чтобы он запускался как приложение Windows Form

Когда я устанавливаю тип вывода для консоли и когда аргументы не обнаруживаются, я включаю визуальные стили и запускаю.Это прекрасно работает, за исключением того, что окно консоли открывается / закрывается быстро, и это действительно беспокоит меня.Есть ли способ, чтобы окно консоли не отображалось? Я ищу способ вообще не создавать его.

Ответы [ 2 ]

3 голосов
/ 11 января 2012
  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" );
    }
    
3 голосов
/ 11 января 2012

Я бы сделал это наоборот, сделав это приложением WinForms, потому что вы попадаете в код до того, как что-либо создано (в вашей основной функции в program.cs).

Смотрите эту ссылку: http://www.rootsilver.com/2007/08/how-to-create-a-consolewindow

...