Thay đổi font chữ của cmd bằng Python

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 = 12font.FaceName = "Lucida Console"

Bài gốc: http://www.janthor.com/sketches/index.php?/archives/19-How-to-change-the-font-of-the-Windows-console-with-Python.html


Nhờ kĩ thuật này nên DNHconsole2.1 sẽ không phải chỉnh font thủ công nữa :v: :smile:

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?