begin process at 2010 02 10 07:28:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Débutant(e)

 > 

[D7] Script universel pour installer une police.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[D7] Script universel pour installer une police.

jeudi 23 octobre 2008 à 16:49:53 | [D7] Script universel pour installer une police.

nitrique

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.
jeudi 23 octobre 2008 à 17:59:54 | Re : [D7] Script universel pour installer une police.

Guillemouze

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 ?
vendredi 24 octobre 2008 à 08:01:41 | Re : [D7] Script universel pour installer une police.

nitrique

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...


vendredi 24 octobre 2008 à 14:07:36 | Re : [D7] Script universel pour installer une police.

Guillemouze

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 !
vendredi 24 octobre 2008 à 14:45:14 | Re : [D7] Script universel pour installer une police.

nitrique

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.
vendredi 24 octobre 2008 à 15:21:45 | Re : [D7] Script universel pour installer une police.

Guillemouze

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
vendredi 24 octobre 2008 à 15:53:21 | Re : [D7] Script universel pour installer une police.

nitrique

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 ?
vendredi 24 octobre 2008 à 16:42:53 | Re : [D7] Script universel pour installer une police.

Guillemouze

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
 


Cette discussion est classée dans : script, poste, police, d7, universel


Répondre à ce message

Sujets en rapport avec ce message

Actionner et arrêter une application sur un poste à distance. [ par slhuilli ] BOnjour à tous,Je me suis animateur multimedia dans une madiatheque et je travaille sur un réseau (en fait 5 machines sous windows 98 sans serveurn du Actionner et arrêter une application sur un poste à distance [ par thierry ] SalutMeme question j'ai essaye ICS sous CBUILDER avec l'exemple de Chat donné .Mon programme compare la chaine recu au nom du programmeà lancer sur le Faire executer une appli a distance [ par slhuilli ] Quelu'un saurait il s'il est possible a partir d'un poste (PC1) de faire executer et de terminer une tache sur un autre poste (PC2), sachant que ces d AddStandardAlias avec chemin sur poste distant [ par mik38 ] Bonjour,je crée un alias dynamique (paradox) sur un poste à travers le lan mais quand il y a un pb de connexion il y a aucun message d'erreur et rien installer une police [ par fab30 ] Salut, si qqun sait comment installer une police (.ttf) au démarage d'une appli sans utiliser CopyFile (ca ne marche pas), Ca m'aiderait énormément!!f script inno pour installer Interbase [ par lnicos ] tout d'abordje tiens à dire que j'ai regarder les sujets du forum traitant de ce sujet, mais je n'ai pas réussi à le faire marcher chez moi.Ds mon app Savoir quand un poste d'un reseau local ouvre une session [ par shaoran ] BonjourJe voudrais savoir si lorsque qqn ouvre une session sur un poste d'un reseau local NT, un message windows est il envoyé sur le reseau ?Mon but Vérifier une Connexion Internet [ par mounsara ] Bonjour, J'ai cherché une solution à mon problème mais malheureusement je n'ai rien trouvé!!!J'aimerai vérifier si je suis connecté à Internet lorsque script d'installation innosetup pour IB [ par lnicos ] Tout d'abord, je tiens à vous dire que j'ai déjà cherché sur ce forum et d'autres d'ailleur, et que je n'ai pas trouvé de solution qui marche. J'ai es Pb de lecture d'1 fichier .ini [ par teefun ] Salut à tous Je suis moyen en programmation avec delphi, je m'en sortait jusqu'au moment ou il fallait sauvegarder les paramètres de mon application ,


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales