SetCurrentConsoleFontEx (kernel32)
Last changed: matistjati@outlook.com-90.144.199.50

.
Summary
This function allows to set the font dimensions on consoles.

C# Signature:

    [DllImport("kernel32.dll", SetLastError = true)]
    static extern bool SetCurrentConsoleFontEx(
        IntPtr ConsoleOutput,
        bool MaximumWindow,
        CONSOLE_FONT_INFO_EX ConsoleCurrentFontEx
        );

VB Signature:

Declare Function SetCurrentConsoleFontEx Lib "kernel32.dll" (TODO) As TODO

User-Defined Types:

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

        public COORD(short X, short Y)
        {
        this.X = X;
        this.Y = Y;
        }
    };

    [StructLayout(LayoutKind.Sequential)]
    public struct CONSOLE_FONT_INFO_EX
    {
        public uint cbSize;
        public uint nFont;
        public COORD dwFontSize;
        public ushort FontFamily;
        public ushort FontWeight;

        fixed char FaceName[32]; // this will require the assembly to be unsafe
    }

Or alternatively if you can't afford unsafe assemblies

    [StructLayout(LayoutKind.Sequential)]
    public struct CONSOLE_FONT_INFO_EX
    {
        public uint cbSize;
        public uint nFont;
        public COORD dwFontSize;
        public ushort FontFamily;
        public ushort FontWeight;

        UInt64 face0, face1, face2, face3, face4, face5, face6, face7;
    }

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

// Untested, added during 1-pass copy & paste of windows console fuctions

When on Windows XP, kernel32 does NOT support SetCurrentConsoleFontEx and cannot be used. It will throw an error saying entry point not found because of this.

Minimum supported client: Windows Vista

Tips & Tricks:

Please add some!

Sample Code:

Please add some!

Documentation