Чтобы запретить изменение размера консоли в 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);
Теперь, при запуске приложения, пользователю будет запрещено изменять размер окна консоли и максимизировать его.