Я ищу в Интернете, но ничего полезного не нашел.
Все ответы возвращают либо количество символов, либо полное разрешение экрана.
Консоль Windows исторически является эмуляцией оболочки DOS.
От Как получить размер экрана Консольного приложения? :
using System.Management; // Need assembly reference added to project
Console.Write("Console resolution in char:");
Console.Write(Console.WindowWidth + "x" + Console.WindowHeight);
var scope = new ManagementScope();
scope.Connect();
var query = new ObjectQuery("SELECT * FROM Win32_VideoController");
using ( var searcher = new ManagementObjectSearcher(scope, query) )
foreach ( var result in searcher.Get() )
Console.WriteLine("Screen resolution in pixels: {0}x{1}",
result.GetPropertyValue("CurrentHorizontalResolution"),
result.GetPropertyValue("CurrentVerticalResolution"));
Возвращает разрешение экрана из текущего режима видеодрайвера.
Командная строка Windows - больше не командная строка DOS, а уменьшенная оболочка.
Многие вещи и многие команды DOS были потеряны.
Вы не можете больше создавать программы в самой консоли.
API вывода командной строки теперь очень прост и прост.
Сегодня консольное приложение может знать свое разрешение только в символах.
Нет более продвинутого API и нет доступных прерываний.
Оболочка Windows DOS COMMAND.COM была заброшена для командной строки CMD.EXE после Windows Me.
Нет простого способа узнать, какое разрешение в pixels из Windows, которая «размещает» внутреннюю консоль.
using System.Diagnostics;
using System.Drawing;
using System.Runtime.InteropServices;
[DllImport("user32.dll")]
private static extern int GetWindowRect(IntPtr hwnd, out Rectangle rect);
Rectangle rect;
GetWindowRect(Process.GetCurrentProcess().MainWindowHandle, out rect);
Console.WriteLine($"Console window location: {rect.X}x{rect.Y}");
Console.WriteLine($"Console window resolution: {rect.Width}x{rect.Height}");
Но результат не очень точный.
Например, он показывает:
Console window location: 187x174
Console window resolution: 1336x812
Когдареальное разрешение - 1149x638 ...
И это разрешение окна консоли меняется при каждом запуске ...
Console window location: 99x58
Console window resolution: 1248x696
Console window location: 143x116
Console window resolution: 1292x754
Console window location: 77x29
Console window resolution: 1226x667
Console window location: 187x174
Console window resolution: 1336x812
Реальный размер формы консоли:
RealWidth = rect.Width - rect.X;
RealHeight = rect.Height - rect.Y;