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

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

  1. Подключите пространство имен System.Runtime.InteropServices для использования WinAPI функций и структур.
using System.Runtime.InteropServices;
  1. Определите необходимые константы и функции 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);
  1. Получите дескриптор окна консоли вызовом функции GetConsoleWindow().
IntPtr consoleWindow = GetConsoleWindow();
  1. Получите текущие стили окна с помощью функции GetWindowLong().
int windowStyles = GetWindowLong(consoleWindow, GWL_STYLE);
  1. Установите стили окна без возможности изменения размеров и максимизации.
windowStyles &= ~WS_THICKFRAME;
windowStyles &= ~WS_MAXIMIZEBOX;
  1. Установите новые стили окна с помощью функции SetWindowLong().
SetWindowLong(consoleWindow, GWL_STYLE, windowStyles);

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