python – 在Windows中更改控制台字体
|
有没有办法在 python 2.6中更改 Windows中的控制台字体? 我在Windows 7上. 即: import os os.console.font = 'Lucida Console' *编辑(意外发布此答案) 更多信息和问题: 我查看了Windows API: 看起来它具有更改控制台字体的功能: SetCurrentConsoleFontEx 或者至少获取有关当前字体的信息: GetCurrentConsoleFont GetCurrentConsoleFontEx 我的下一步是找到一个可以使用windows API的python模块. 您导入的实际模块不是pywin32,而是win32api,win32net,win32console 没有在那里显示所提到的字体功能,它只是简单地遗漏了它们. 解决方法可以使用ctypes更改控制台字体.最小的代码示例如下所示: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",("dwFontSize",COORD),("FontFamily",ctypes.c_uint),("FontWeight",("FaceName",ctypes.c_wchar * LF_FACESIZE)]
font = CONSOLE_FONT_INFOEX()
font.cbSize = ctypes.sizeof(CONSOLE_FONT_INFOEX)
font.nFont = 12
font.dwFontSize.X = 11
font.dwFontSize.Y = 18
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))
我还写了一个不那么简单的例子on my homepage. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
