共用方式為


字型安裝和刪除

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

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

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

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

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

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

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

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