Как скрыть консоль в консольном приложении C#?

Для скрытия консоли в консольном приложении на C# вам понадобится использовать WinAPI. В самом начале вашего кода вам нужно импортировать пространство имен System.Runtime.InteropServices для работы с общедоступным интерфейсом пользователя Windows (WinAPI). Затем вы можете использовать функцию SetConsoleWindowInfo для скрытия консольного окна.

Вот пример кода, который скрывает консоли при загрузке приложения:

using System;
using System.Runtime.InteropServices;

namespace ConsoleApplication
{
    class Program
    {
        // Импортирование функции SetConsoleWindowInfo из WinAPI
        [DllImport("kernel32.dll", SetLastError = true)]
        static extern bool SetConsoleWindowInfo(IntPtr hConsoleOutput, bool bAbsolute, [In] ref SMALL_RECT lpConsoleWindow);

        // Структура для указания размеров окна консоли
        [StructLayout(LayoutKind.Sequential)]
        public struct SMALL_RECT
        {
            public short Left;
            public short Top;
            public short Right;
            public short Bottom;
        }

        static void Main(string[] args)
        {
            // Получение хендла консольного окна
            var handle = GetConsoleWindow();

            // Создание структуры SMALL_RECT с позицией и размером окна
            SMALL_RECT rect = new SMALL_RECT { Left = 0, Top = 0, Right = 0, Bottom = 0 };

            // Скрытие окна консоли
            SetConsoleWindowInfo(handle, true, ref rect);

            // Остальной код вашего приложения
            Console.WriteLine("Пример скрытия консоли");
            Console.ReadLine();
        }

        // Импортирование функции GetConsoleWindow из WinAPI
        [DllImport("kernel32.dll", SetLastError = true)]
        static extern IntPtr GetConsoleWindow();
    }
}

В этом примере мы импортировали функцию GetConsoleWindow, чтобы получить хендл (идентификатор) консольного окна. Затем мы создали структуру SMALL_RECT, чтобы установить координаты и размеры окна.

С помощью функции SetConsoleWindowInfo мы передаем параметры для скрытия окна. Передав параметр bAbsolute значение true, мы указываем абсолютные координаты и размеры окна, а структура SMALL_RECT с аргументом Left, Top, Right и Bottom, которые все установлены на 0, скрывает окно консоли.

Код после скрытия консоли будет продолжать выполняться, и вы можете добавить любой остальной функционал для вашего приложения.

Не забудьте добавить ссылку на System.Runtime.InteropServices и System в ваш проект.