PythonからWin32APIを呼び出すには、ライブラリpywin32を使う必要がある。
けっこうな数のWin32APIを使えるのはいいんだけど、使い方にくせがあってしかもネットに情報がないので、以下で「プロポーショナルフォントかどうかをチェックする方法」を掲載。
import win32gui # フォントがプロポーショナルかどうか def IsFontProportional(name): stat = False hdc = win32gui.GetDC(0) lf = win32gui.LOGFONT() lf.lfFaceName = name lf.lfHeight = lf.lfWidth = 256 # 高さと幅は何でもいい hf = win32gui.CreateFontIndirect(lf) if (hf == 0): return stat old = win32gui.SelectObject(hdc, hf) # 作ったフォントを選択 tm = win32gui.GetTextMetrics(hdc) if (tm["PitchAndFamily"] & 0x01): stat = True win32gui.SelectObject(hdc, old) # 元のフォントを選択 win32gui.ReleaseDC(0, hdc) win32gui.DeleteObject(hf) return stat ret1 = IsFontProportional("MS ゴシック") # 0 ret2 = IsFontProportional("MS Pゴシック") # 1 ret3 = IsFontProportional("メイリオ") # 1 ret4 = IsFontProportional("HGPゴシックE") # 1