Установить код завершения приложения / уровень ошибки из приложения WinForms, запускаемого как консольное приложение

Как установить код завершения приложения из приложения Winforms, которое я запускаю как консольное приложение? Не разбивая консольное приложение на отдельную DLL, конечно.

У меня есть приложение Winforms. В прошлом кто-то решил создать параметры командной строки, которые будут запускаться как консольное приложение вместо приложения WinForms. Я знаю, что разбить его на отдельный проект консольного приложения - это решение, но без этого есть ли способ установить код завершения приложения?

Я старался:

  1. Иметь основной возврат int

  2. Вызов Environment.Exit(int)

  3. Установка Environment.ExitCode = int

Никто не работал.

Затем, конечно, из командной строки я запустил команду ниже. Но код ошибки не обновлялся.

echo% errorlevel%

public static class Program
{
    // defines for commandline output
    [DllImport("kernel32.dll")]
    static extern bool AttachConsole(int dwProcessId);

    private const int ATTACH_PARENT_PROCESS = -1;

    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    public static int Main(string[] args)
    {
        // redirect console output to parent process;
        // must be before any calls to Console.WriteLine()
        AttachConsole(ATTACH_PARENT_PROCESS);

        //make sure to update 0 to another number to make sure you aren't getting a false positive
        return 0;
    }
}

0 ответов

Другие вопросы по тегам