Effacement d'un fichier *.ttf

Sechaud Messages postés 288 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 3 janvier 2017 - 24 mars 2005 à 21:29
Sechaud Messages postés 288 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 3 janvier 2017 - 26 mars 2005 à 06:26
Ayant beaucoup de fonts, j'ai pensé utiliser un programme
en VB pour visualiser et choisir les polices que l'on trouve
sur le Net, sans avoir à les installer.
C'est fait, avec des bouts de code trouvés ça et là j'ai
mon visualisateur.
MAIS je voudrais pouvoir effacer une police sélectionnée que
je ne veux pas garder.
J'ai donc ajouté un bouton pour effacer.
J'utilise KILL qui m'a toujours donné satisfaction.
Cette fois, j'ai un compte rendu d'erreur:
"Erreur dans le chemin d'accès"
et on ne peut pas effacer la police, qui n'est pas installée
ni protégée en ecriture.
Si je remplace l'extension ttf par txt, tout va bien et le fichier
est effacé.
Comment faire?
Merci à ceux qui porront me venir en aide.

2 réponses

valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
25 mars 2005 à 11:53
Salut c'est pas aussi simple que cela ta police est enregistrée dans la base de registre.
Utilises l'api ci-dessous
Fonction RemoveFontResource

Declare Function RemoveFontResource Lib "gdi32" Alias "RemoveFontResourceA" ( _
ByVal lpFileName As String) As Long
Versions :
. Windows 95/98 : Oui
. Windows NT : A partir de 3.1
. Windows 2000/XP : Oui


Description :
Cette fonction permet d'enlever (désinstaller) une police de caractère.
lpFileName est une chaîne de caractère indiquant le fichier de fonte à manipuler (extensions ".TTF", ".FON", ...).
La valeur de retour indique le nombre de polices enlevées.
Pour que le sytème prennent en compte les modifications, il faut faire un SendMessage ( HWND_BROADCAST , WM_FONTCHANGE , 0 , 0 ).

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
Sechaud Messages postés 288 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 3 janvier 2017
26 mars 2005 à 06:26
Bonjour Valtrase,
Je te remercie beaucoup pour ton code.
Comme je l'avais dit, dans mon cas, les polices que je visualise et que je veux pouvoir effacer ne sont pas enregistrées dans le dossier de Windows.
Donc je voulais faire simple.Il m'est venu à l'idée de jouer sur l'extension.
J'ai donc recherché sur vbfrance avec le mot "extension" et j'y ai trouvé
des routines intéressantes.
Donc voici ce que j'ai fini par faire pour tester mon idée




Dim Fichier As String
Const Chemin = "C:\Tempor" 'Dossier où sont les fonts à trier


Private Sub Command1_Click()


Fichier = Dir(Chemin & "trebuc.ttf")
If Fichier = "" Then Exit Sub
Name Chemin & Fichier As Chemin & Mid$(Fichier, 1, Len(Fichier) - 4) & ".txt"
Text1.Text = Mid$(Fichier, 1, Len(Fichier) - 4) & ".txt"
Text2.Text = "C:\Tempor" + Text1.Text
Kill (Text2.Text)
End Sub

Voila, il ne me reste plus qu'à adapter cette étude dans mon programme.
Encore merci et merci également à celui à qui j'ai emprunté un bout de source.
0
Rejoignez-nous