我正在尝试使用以下程序更改控制台字体大小。
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)]
def changefont():
font = CONSOLE_FONT_INFOEX()
font.cbSize = ctypes.sizeof(CONSOLE_FONT_INFOEX)
font.nFont = 12
font.dwFontSize.X = 30
font.dwFontSize.Y = 30
font.FontFamily = 54
font.FontWeight = 400
font.FaceName = "Lucida Console"
handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
ctypes.windll.kernel32.SetCurrentConsoleFontEx(
handle, ctypes.c_long(False), ctypes.pointer(font))
changefont()
print "Hello world"
使用
将程序转换为可执行文件pyinstaller --onefile demo.py
最终程序的执行适用于Win7系统,我得到一个改变字体大小的控制台。
然而,在旧的Windows XP笔记本电脑上做同样的事情,我得到了一个
AttributeError: function 'SetCurrentConsoleFontEx' not found
那里有些不同,但我不知道它是什么,我不知道从哪里开始。任何意见都赞赏。