我使用向我的 Tkinter GUI 應用程式添加了一個字體資源檔案
gdi32 = ctypes.WinDLL('gdi32')
gdi32.AddFontResourceW(font_path)
它作業得很好,但是,我似乎無法從用戶系統中洗掉字體。
當用戶退出程式時,我想使用洗掉字體資源
gdi32.RemoveFontResourceW(font_path)
但是,它似乎根本不起作用。我在這里想念什么?
作為參考,這里是解釋添加/洗掉字體功能用法的Microsoft檔案
uj5u.com熱心網友回復:
根據RemoveFontResourceW()檔案:
如果存在對字體的未完成參考,則關聯的資源將保持加載,直到沒有設備背景關系正在使用它。此外,如果字體在字體注冊表 (
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts) 中列出并且安裝到檔案夾以外的任何位置%windir%\fonts\,則它可能會加載到其他活動會話(包括會話 0)中。
因此,在嘗試洗掉它之前,請確保確實沒有更多對該字體的參考。
另外,請確保您正在廣播WM_FONTCHANGE,如檔案所述:
我們建議,如果應用程式在系統字體表中添加或洗掉字體,它會通過向
WM_FONTCHANGE系統中的所有頂級視窗發送訊息來通知其他視窗更改。應用程式通過呼叫引數設定為的SendMessage函式來發送此訊息。hwndHWND_BROADCAST
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/442481.html
