Condividi tramite


Installazione ed eliminazione dei tipi di carattere

Un'applicazione può utilizzare un tipo di carattere per disegnare testo solo se il tipo di carattere risiede in un dispositivo specificato o installato nella tabella dei tipi di carattere di sistema. La tabella dei tipi di carattere è una matrice interna che identifica tutti i tipi di carattere non dispositivo disponibili per un'applicazione. Un'applicazione può recuperare i nomi dei tipi di carattere attualmente installati in un dispositivo o archiviati nella tabella dei tipi di carattere interna chiamando le funzioni EnumFontFamilies o ChooseFont .

Per installare temporaneamente un tipo di carattere, chiamare AddFontResource o AddFontResourceEx. Queste funzioni caricano un tipo di carattere archiviato in un file di risorse di tipo carattere. Tuttavia, si tratta di un'installazione temporanea perché dopo un riavvio il tipo di carattere non sarà presente.

Per installare un tipo di carattere che rimarrà dopo il riavvio del sistema, utilizzare uno dei metodi seguenti:

  • Passare alla Pannello di controllo, fare clic sull'icona Tipi di carattere e selezionare Installa nuovi tipi di carattere dal menu File. Il tipo di carattere è disponibile per un'applicazione anche prima del riavvio. Tuttavia, in una situazione del server terminal il tipo di carattere è disponibile per la sessione corrente, ma non è disponibile per altre sessioni fino a quando non viene riavviato.
  • Copiare il tipo di carattere nella cartella %windir%\fonts. Passare quindi alla Pannello di controllo e fare clic sull'icona Tipi di carattere oppure chiamare AddFontResource o AddFontResourceEx. Il tipo di carattere è disponibile per un'applicazione anche prima del riavvio. Tuttavia, in una situazione del server terminal il tipo di carattere è disponibile per la sessione corrente, ma non è disponibile per altre sessioni fino a quando non viene riavviato. Se si copia solo il tipo di carattere nella cartella %windir%\fonts, il tipo di carattere sarà disponibile solo dopo il riavvio del sistema.

Al termine dell'uso di un tipo di carattere installato, un'applicazione deve rimuovere il tipo di carattere chiamando la funzione RemoveFontResource .

Non è possibile modificare un tipo di carattere installato da un percorso diverso dalla cartella %windir%\fonts durante il caricamento in qualsiasi sessione attiva, inclusa la sessione 0. Qualsiasi tentativo di modificare, sostituire o eliminare verrà pertanto bloccato. Se è necessaria la modifica a un tipo di carattere:

  • I tipi di carattere temporanei vengono caricati solo nella sessione corrente. Prima di tentare qualsiasi modifica del tipo di carattere, chiamare RemoveFontResource per forzare il scaricamento del tipo di carattere della sessione corrente.
  • I tipi di carattere permanenti rimangono installati dopo il riavvio e vengono caricati da tutte le sessioni create. Chiamare RemoveFontResource per forzare il scaricamento del tipo di carattere della sessione corrente. Quindi, nella chiave del Registro di sistema dei caratteri (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts) trovare e rimuovere il valore del Registro di sistema associato al tipo di carattere. Infine, riavviare il computer per assicurarsi che il tipo di carattere non venga caricato in alcuna sessione. Dopo il riavvio, procedere con la modifica/eliminazione del tipo di carattere.

Ogni volta che un'applicazione chiama le funzioni che aggiungono ed eliminano le risorse del tipo di carattere, deve anche chiamare la funzione SendMessage e inviare un messaggio di WM_FONTCHANGE a tutte le finestre di primo livello del sistema. Questo messaggio notifica ad altre applicazioni che la tabella dei tipi di carattere interna è stata modificata da un'applicazione che ha aggiunto o rimosso un tipo di carattere.