GetCurrentConsoleFont (kernel32)
Last changed: shelleybutterfly-67.163.100.116

.
Summary
Returns an index to the currently selected console font

C# Signature:

[DllImport("kernel32.dll")]
    static extern bool GetCurrentConsoleFont(
        IntPtr hConsoleOutput,
        bool bMaximumWindow,
        out CONSOLE_FONT_INFO lpConsoleCurrentFont);

User-Defined Types:

[StructLayout(LayoutKind.Sequential)]

    public struct CONSOLE_FONT_INFO
    {
        public int nFont;
        public Coord dwFontSize;
    }

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

None.

Sample Code:

Here's a method that uses this method in conjunction with GetConsoleFontSize to return the size of the currently selected console font.

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;
    }

Documentation