[D7] Script universel pour installer une police.

cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 - 23 oct. 2008 à 16:49
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 - 24 oct. 2008 à 16:42
Bonjour à tous,


Voilà, le titre est parlant.

En bref, j'aimerais que mon appli installe une police sur le poste qui
l'utilise, mais je n'ai pas du tout l'idée de la config de ce poste,
sinon que c'est un Windows (de 98 à Vista en passant par 2000).


J'ai bien vu la solution qui consiste à déclarer la police trimballée avec l'appli le temps que l'application est active...
Mais moi, je voudrais vraiment faire une installation "officielle" et durable sur le poste local.

Sachant, bien sur, qu'un simple copyFile ne fonctionne pas (ce serait trop facile).


Merci d'avance.

7 réponses

Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
23 oct. 2008 à 17:59
pourquoi tu reposte le meme message que sur un autre forum, où tu t'es toi meme repondu d'ailleurs ?!!!
peut etre un enorme lag de 3 jour de validation du post ?
0
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 1
24 oct. 2008 à 08:01
Salut Guillenouze,

Si tu lis bien, je me ne suis pas répondu.
La solution que j'ai trouvé est celle que je décrit plus haut... A savoir: "déclarer la police trimballée avec l'appli, juste le temps que l'application est active".

Or, je veux bel et bien INSTALLER la police... Et ça, pas moyen.

Quand à l'autre forum (que je ne veux pas dénigrer car il m'a déjà apporté beaucoup de bonnes choses), ma question n'a pas l'air d'inspirer ses membres car même quand je donne un script que je demande si quelqu'un veut bien tester sous Vista, je n'ai pas de réponses...
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
24 oct. 2008 à 14:07
bah comme tu l'as dit sur l'autre forum, AddFontResource est la solution je pense. il faut simplement que tu ne fasse pas de RemoveFontResource à la fermeture de l'appli !
0
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 1
24 oct. 2008 à 14:45
Ok... Ca veut dire que on peut installer une police durablement sans que le fichier soit présent dans le répertoire "%windir%\fonts" ?

Justement, je me posait une question...
Quand on supprime une police du répertoire "%windir%\fonts", il la désinstalle automatiquement (suppression de la base de registre), nan ?

Si oui, il ne le fera pas avec la police installé et trimballée par mon appli (Ca me parait irréel qu'il pose un événement dessus).

Donc, je peux me retrouver dans le cas ou la police est bien installée (présente dans la liste de Word, par exemple), mais dont le fichier n'est pas physiquement présent... Ca peut faire un plantage ça ?

Est ce que quelqu'un peut m'éclairer ?

Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
24 oct. 2008 à 15:21
heu je pense que le registerFont fait apparaitre le fichier de le dossier fonts de windows. a verifier car ce n'est qu'une supposition
0
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 1
24 oct. 2008 à 15:53
Bon... Pour info: Non, rien dans la base !

Puis, par soucis de propreté et d'homogénéité... Et surtout, pour savoir le faire:

Comment faire pour installer dynamiquement une police ?
(avoir le fichier copié dans le répertoire "%windir%\fonts").

... De manière universelle. ;-)

Quelqu'un a une idée ?
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
24 oct. 2008 à 16:42
extrait de l'aide de windows sdk:
By carrying out these steps, you can write a single font installation routine that works for both Windows NT and Windows 95:

1.    Determine whether the platform is Windows 95 or Windows NT. This distinction is important because Windows 95 allows a shared network installation where most system files, including fonts, are stored on a centrally managed server. To determine the platform, look in the following registry location for a "SharedDir" value.

HKeyLocalMachine\Software\Microsoft\Windows\CurrentVersion\Setup 
 

The data value of "SharedDir" is the UNC name of the server and sharepoint of the shared directory. In most cases, a shared directory is marked as read-only by the system administrator, so your installation program should also check to see if it can write to this location. If it cannot, it should let the user install the fonts in a different location, or stop the setup process.

2.    Check whether the TrueType® font being installed is already present on the system by using the EnumFontFamilies function. If that font is present, the program should check to see if its version is newer by matching the installed font name with the filename on the disk. The font name is stored in the following registry location for both Windows 95 and Windows NT.

HKeyLocalMachine\Software\Microsoft\Windows\CurrentVersion\Fonts 
 

The subkeys in this registry location contain the full name of the font file as the value key, followed by the filename of the .TTF file as the key data. If the filename in the registry is just a filename with no path information, the font is installed in the \WINDOWS\FONTS directory for Windows 95 or the \WINDOWS\SYSTEM directory for Windows NT. Because TrueType font files do not carry a version resource, your program will need to retrieve the version string from the 'name' table in the .TTF file.

·    Before copying the .TTF file to the appropriate directory, the installation program should check to see if the filename already exists in that directory. If it does, the program should rename your .TTF file to some other name, perhaps by appending a number to the end of the basename.
·    After copying the .TTF file to the user's disk, the installation program should inform the system that it wants the font to be available. The program should pass it the .TTF filename directly by using the AddFontResource function. Windows 95 and Windows NT do not require the creation of .FOT files.

·    To make the font installation permanent, the installation program should add the font name and filename to the registry by writing both of the values to the following registry location.

HKeyLocalMachine\Software\Microsoft\Windows\CurrentVersion\Fonts
 
0
Rejoignez-nous