import ctypes
LF_FACESIZE = 32
STD_OUTPUT_HANDLE = -11
class COORD(ctypes.Structure):
_fields_ = [("X", ctypes.c_short), ("Y", ctypes.c_short)]
class CONSOLE_FONT_INFOEX(ctypes.Structure):
_fields_ = [("cbSize", ctypes.c_ulong),
("nFont", ctypes.c_ulong),
("dwFontSize", COORD),
("FontFamily", ctypes.c_uint),
("FontWeight", ctypes.c_uint),
("FaceName", ctypes.c_wchar * LF_FACESIZE)]
font = CONSOLE_FONT_INFOEX()
font.cbSize = ctypes.sizeof(CONSOLE_FONT_INFOEX)
font.nFont = 9
font.dwFontSize.X = 9
font.dwFontSize.Y = 20
font.FontFamily = 54
font.FontWeight = 400
font.FaceName = "Consolas"
handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
ctypes.windll.kernel32.SetCurrentConsoleFontEx(
handle, ctypes.c_long(False), ctypes.pointer(font))
Chạy code trên Font của cmd sẽ đổi sang Font Consolas, với Font Size 20. Nếu muốn đổi sang Font Lucida Console thì thay font.nFont = 12
và font.FaceName = "Lucida Console"
Nhờ kĩ thuật này nên DNHconsole2.1 sẽ không phải chỉnh font thủ công nữa