有没有办法在python 2.6中更改Windows中的控制台字体?
我在Windows 7上.
即:
import os
os.console.font = 'Lucida Console'
Run Code Online (Sandbox Code Playgroud)
*编辑 (意外发布此答案)
更多信息和问题:
我查看了Windows API:http: //msdn.microsoft.com/en-us/library/ms682073%28v=VS.85%29.aspx
看起来它具有更改控制台字体的功能:
SetCurrentConsoleFontEx
Run Code Online (Sandbox Code Playgroud)
或者至少获取有关当前字体的信息:
GetCurrentConsoleFont
GetCurrentConsoleFontEx
Run Code Online (Sandbox Code Playgroud)
我的下一步是找到一个可以使用windows API的python模块.这是一个名为pywin32:http: //sourceforge.net/projects/pywin32/
你导入的实际模块不是pywin32,而是win32api,win32net,win32console我通过完全的猜测来解决这个问题.文档在哪里?帮助运行('win32console')
没有在那里显示所提到的字体功能,它只是简单地遗漏了它们.我在这里错过了什么吗?文档在哪里?或者哪个模块具有所有API的控制台功能......?
小智 9
可以使用更改控制台字体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", 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 = 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))
Run Code Online (Sandbox Code Playgroud)
我还在我的主页上写了一个不那么简单的例子.
| 归档时间: |
|
| 查看次数: |
13336 次 |
| 最近记录: |