Для остроумия:
import win32gui
def enum_fonts(typeface=None):
hwnd = win32gui.GetDesktopWindow()
dc = win32gui.GetWindowDC(hwnd)
res = []
def callback(*args):
res.append(args)
win32gui.EnumFontFamilies(dc, typeface, callback)
win32gui.ReleaseDC(hwnd, dc)
return res
res = enum_fonts()
for r in res:
print r[0].lfFaceName
Что следует за причудливой аберрацией:
System
Terminal
Fixedsys
Roman
Script
Modern
Small Fonts
MS Serif
WST_Czec
WST_Engl
WST_Fren
WST_Germ
WST_Ital
WST_Span
WST_Swed
Courier
MS Sans Serif
Marlett
Arial
...
Waker
TT Anvers Black
TT Anvers
wodSymbols
Traceback (most recent call last):
File "test.py", line 48, in <module>
for r in res:
TypeError: an integer is required
Он сломал питона!
Я делаю неверное предположение о способе вызова функции? Это известная ошибка в pywin32? Есть ли другой способ перечисления семейств шрифтов из python?