GetConsoleFontSize

C# Signature:

[DllImport("kernel32.dll")]
    static extern Coord GetConsoleFontSize(
        IntPtr hConsoleOutput,
        Int32 nFont);

User-Defined Types:

[StructLayout(LayoutKind.Sequential)]
    public struct Coord
    {
        public short X;
        public short Y;
    }

Sample Code:

private Coord GetCurrentFontSize()
    {

      //Need to use reflection to obtain pointer to the console output buffer
      Type consoleType = typeof(Console);

      IntPtr _consoleOutputHandle = (IntPtr)consoleType.InvokeMember(
        "_consoleOutputHandle",
        BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.GetField,
        null,
        null,
        null);

       //Obtain the current console font index
        CONSOLE_FONT_INFO currentFont;
        bool success = GetCurrentConsoleFont(
        _consoleOutputHandle,
        false,
        out currentFont);

       //Use that index to obtain font size    
        Coord coord = GetConsoleFontSize(_consoleOutputHandle, currentFont.nFont);
        return coord;
    }

Última actualización