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