1
我正在嘗試在一堆服務器上安裝字體。我已經能夠使用腳本來複制字體並將它們「安裝」到服務器上,但我需要能夠訪問字體而不需要必須關閉服務器或註銷帳戶。Python版本的AddFontResource()
我發現Windows AddFontResource()
這是使用C++完成的,但在Python或Powershell中是否存在等效函數?
(我一直在使用Python和PowerShell做檢查和安裝。)
我正在嘗試在一堆服務器上安裝字體。我已經能夠使用腳本來複制字體並將它們「安裝」到服務器上,但我需要能夠訪問字體而不需要必須關閉服務器或註銷帳戶。Python版本的AddFontResource()
我發現Windows AddFontResource()
這是使用C++完成的,但在Python或Powershell中是否存在等效函數?
(我一直在使用Python和PowerShell做檢查和安裝。)
您是否嘗試過使用win32api
庫?它具有SendMessage()
功能,可與windll.gdi32.AddFontResource()
結合使用在
例如安裝TTF字體文件:
import win32api
import ctypes
import win32con
ctypes.windll.gdi32.AddFontResourceA("C:\\Path\\To\\Font\\font.ttf")
win32api.SendMessage(win32con.HWND_BROADCAST, win32con.WM_FONTCHANGE)
請避免遺留[A] NSI API。您不必要地限制路徑,它應該能夠包含任何Unicode字符,並且在Python 3中編寫的代碼不起作用。使用'gdi32 = ctypes.WinDLL('gdi32');''gdi32.AddFontResourceW。 argtypes =(ctypes.c_wchar_p,);''gdi32.AddFontResourceW(r「C:\ Path \ To \ Font \ font.ttf」)''。我定義了'argtypes'來允許Python 2中的ctypes使用''mbcs''編解碼器自動轉換字節串路徑。對於完整的字符範圍,使用「u」「'文字。 – eryksun