共用方式為


字型安裝和刪除

只有當該字型位於指定的裝置或安裝在系統字型表中時,應用程式才能使用字型來繪製文字。 字型表格是內部數位,可識別應用程式可用的所有非裝置字型。 應用程式可以呼叫 EnumFontFamiliesChooseFont 函式,以擷取目前安裝在裝置或儲存在內部字型數據表中的字型名稱。

若要暫時安裝字型,請呼叫 AddFontResourceAddFontResourceEx。 這些函式會載入儲存在字型資源檔中的字型。 不過,這是暫時安裝,因為在重新啟動之後,字型就不會存在。

若要安裝將在系統重新啟動之後保留的字型,請使用下列其中一種方法:

  • 移至 [控制面板],按兩下 [字型] 圖示,然後從 [檔案] 功能表中選取 [安裝新字型]。 即使在重新啟動之前,應用程式仍可使用字型。 不過,在終端機伺服器的情況下,目前會話的字型可供使用,但在重新啟動之後才可供其他會話使用。
  • 將字型複製到 \fonts 資料夾 %windir%。 然後,移至 [控制面板],然後按兩下 字型 圖示,或呼叫 AddFontResourceAddFontResourceEx。 即使在重新啟動之前,應用程式仍可使用字型。 不過,在終端機伺服器的情況下,目前會話的字型可供使用,但在重新啟動之後才可供其他會話使用。 如果您只將字型複製到 %windir%\fonts 資料夾中,則只有在系統重新啟動之後,才能使用字型。

當應用程式使用已安裝的字型完成時,它必須呼叫 RemoveFontResource 函式來移除該字型。

從 %windir%\fonts 資料夾以外的位置安裝字型,無法在載入任何使用中工作階段時修改,包括會話 0。 因此,任何嘗試變更、取代或刪除都會遭到封鎖。 如果需要修改字型:

  • 暫存字型 只會在目前的會話中載入。 嘗試修改任何字型之前,請先呼叫 removeFontResource,強制目前的會話卸除字型。
  • 永久字型 重新啟動後仍會安裝,並由所有建立的會話載入。 呼叫 RemoveFontResource,強制目前的會話卸除字型。 然後,在字型登錄機碼 (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts) 中尋找並移除與字型相關聯的登錄值。 最後,將機器重新啟動,以確保字型不會載入任何工作階段。 重新啟動之後,繼續進行您的字型修改/刪除。

每當應用程式呼叫新增和刪除字型資源的函式時,也應該呼叫 SendMessage 函式,並將 WM_FONTCHANGE 訊息傳送至系統中的所有最上層視窗。 此訊息會通知其他應用程式,內部字型數據表已由新增或移除字型的應用程式改變。