Bagikan melalui


Penginstalan dan Penghapusan Font

Aplikasi dapat menggunakan font untuk menggambar teks hanya jika font tersebut merupakan penduduk pada perangkat tertentu atau diinstal dalam tabel font sistem. Tabel font adalah array internal yang mengidentifikasi semua font nondevice yang tersedia untuk aplikasi. Aplikasi dapat mengambil nama font yang saat ini diinstal pada perangkat atau disimpan dalam tabel font internal dengan memanggil fungsi EnumFontFamilies atau ChooseFont .

Untuk menginstal font untuk sementara waktu, panggil AddFontResource atau AddFontResourceEx. Fungsi-fungsi ini memuat font yang disimpan dalam file font-resource. Namun, ini adalah penginstalan sementara karena setelah boot ulang font tidak akan ada.

Untuk menginstal font yang akan tetap ada setelah sistem di-boot ulang, gunakan salah satu metode berikut:

  • Buka Panel Kontrol, klik ikon Font, dan pilih Instal Font Baru dari menu File. Font tersedia untuk aplikasi bahkan sebelum reboot. Namun, dalam situasi server terminal font tersedia untuk sesi saat ini tetapi tidak tersedia untuk sesi lain sampai setelah boot ulang.
  • Salin font ke folder %windir%\fonts. Kemudian, buka Panel Kontrol dan klik ikon Font, atau panggil AddFontResource atau AddFontResourceEx. Font tersedia untuk aplikasi bahkan sebelum reboot. Namun, dalam situasi server terminal font tersedia untuk sesi saat ini tetapi tidak tersedia untuk sesi lain sampai setelah boot ulang. Jika Anda hanya menyalin font ke folder %windir%\fonts, font akan tersedia hanya setelah sistem di-boot ulang.

Ketika aplikasi selesai menggunakan font yang diinstal, aplikasi harus menghapus font tersebut dengan memanggil fungsi RemoveFontResource .

Fonta yang diinstal dari lokasi selain folder %windir%\fonts tidak dapat dimodifikasi ketika dimuat dalam sesi aktif, termasuk sesi 0. Oleh karena itu, setiap upaya untuk mengubah, mengganti, atau menghapus akan diblokir. Jika modifikasi pada font diperlukan:

  • Font sementara hanya dimuat dalam sesi saat ini. Sebelum mencoba modifikasi font apa pun, panggil RemoveFontResource untuk memaksa sesi saat ini untuk membongkar font.
  • Font permanen tetap diinstal setelah boot ulang dan dimuat oleh semua sesi yang dibuat. Panggil RemoveFontResource untuk memaksa sesi saat ini untuk membongkar font. Kemudian, di kunci registri font (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts) temukan dan hapus nilai registri yang terkait dengan font. Terakhir, reboot komputer untuk memastikan font tidak dimuat dalam sesi apa pun. Setelah reboot, lanjutkan dengan modifikasi/penghapusan font Anda.

Setiap kali aplikasi memanggil fungsi yang menambahkan dan menghapus sumber daya font, aplikasi juga harus memanggil fungsi SendMessage dan mengirim pesan WM_FONTCHANGE ke semua jendela tingkat atas dalam sistem. Pesan ini memberi tahu aplikasi lain bahwa tabel font internal telah diubah oleh aplikasi yang menambahkan atau menghapus font.