Comment installer des fonts en vb.net ?

Résolu
cs_fabiano13 Messages postés 262 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 27 février 2012 - 20 janv. 2011 à 19:54
cs_fabiano13 Messages postés 262 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 27 février 2012 - 20 janv. 2011 à 21:05
Bonsoir,

Comment installer des fonts en vb.net ?

D'avance merci,
Fabiano
A voir également:

2 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
20 janv. 2011 à 20:56
Code exemple donné dans MSDN :
Imports System.Runtime.InteropServices  
 
Public Class Form1  
 
    <DllImport("gdi32")> _  
    Public Shared Function AddFontResource(ByVal lpFileName As String) As Integer 
    End Function 
 
    <DllImport("user32.dll")> _  
Public Shared Function SendMessage(ByVal hWnd As Integer, ByVal Msg As UInteger, ByVal wParam As Integer, ByVal lParam As Integer) As Integer 
    End Function 
 
    <DllImport("kernel32.dll", SetLastError:=True)> _  
Shared Function WriteProfileString(ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Integer 
    End Function 
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load  
        Dim Ret As Integer 
        Dim Res As Integer 
        Dim FontPath As String 
        Const WM_FONTCHANGE As Integer = &H1D  
        Const HWND_BROADCAST As Integer = &HFFFF  
        FontPath = WinFontDir & "" & FontFileName  
        Ret = AddFontResource(FontPath)  
        Res = SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0)  
        Ret = WriteProfileString("fonts", FontName & " (TrueType)", FontFileName)  
    End Sub 
 
End Class 


Ce code
- installe la police (AddFontResource, ou AddFontResourceEx pour plus d'options) qui n'est valable (pour le moment) que pour l'application et la session en cours.
- informe les autres applications (SendMessage) qu'un changement dans les polices a eu lieu
- enregistre dans le registre (WriteProfileString) pour qu'elle soit toujours disponible après le reboot et pour les autres sessions.

LE fichier font devra, au préalable, être copié dans le dossier font de Windows, représenté dans le code par la variable WinFontDir (nécessite une élévation de privilège sous W7, je crois).
Avec uniquement une simple copie du fichier dans le dossier font, la police ne sera disponible qu'après un reboot de la machine.


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
3
cs_fabiano13 Messages postés 262 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 27 février 2012
20 janv. 2011 à 21:05
Merci mille fois.

A bientôt.
Fabiano
0
Rejoignez-nous