Как запретить менять размер консоли в c#?

Чтобы запретить изменение размера консоли в C#, можно использовать WinAPI функцию SetWindowLong и хук SetWindowLongPntr. Опишем шаги, которые нужно выполнить для достижения желаемого результата:

1. Подключите пространство имен System.Runtime.InteropServices для использования WinAPI функций и структур.

using System.Runtime.InteropServices;

2. Определите необходимые константы и функции WinAPI.

public const int GWL_STYLE = -16;
public const int WS_THICKFRAME = 0x00040000;
public const int WS_MAXIMIZEBOX = 0x00010000;

[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr GetConsoleWindow();

[DllImport("user32.dll")]
public static extern int GetWindowLong(IntPtr hWnd, int nIndex);

[DllImport("user32.dll")]
public static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);

3. Получите дескриптор окна консоли вызовом функции GetConsoleWindow().

IntPtr consoleWindow = GetConsoleWindow();

4. Получите текущие стили окна с помощью функции GetWindowLong().

int windowStyles = GetWindowLong(consoleWindow, GWL_STYLE);

5. Установите стили окна без возможности изменения размеров и максимизации.

windowStyles &= ~WS_THICKFRAME;
windowStyles &= ~WS_MAXIMIZEBOX;

6. Установите новые стили окна с помощью функции SetWindowLong().

SetWindowLong(consoleWindow, GWL_STYLE, windowStyles);

Теперь, при запуске приложения, пользователю будет запрещено изменять размер окна консоли и максимизировать его.