cs_youyou40
Messages postés65Date d'inscriptionlundi 20 décembre 2004StatutMembreDernière intervention28 avril 2022
-
5 avril 2007 à 19:15
cs_youyou40
Messages postés65Date d'inscriptionlundi 20 décembre 2004StatutMembreDernière intervention28 avril 2022
-
7 avril 2007 à 16:05
Bonjour à tous
Voilà mon problème.
Je voudrais installer une police à l'aide de lignes de code VB6.
J'ai trouvé sur le forum plusieurs sources utilisant les APIs AddFontRessource("nom_police.ttf") et SendMessage(hwnd_broacast, wm_fontchange, 0, 0) mais la police n'est pas vraiment installée dans Windows (je l'ai bien sûr copiée auparavant dans le répertoire Fonts de Windows avec un CopyFile ) : elle est fonctionnelle mais seulement jusqu'à l'arrêt de Windows et si je teste les polices installées avec Screen.Fonts , elle n'en fait pas partie.
Au redémarrage elle ne peut plus être utilisée.
Quelqu'un aurait-il la solution pour installer réellement une police dans Windows , sans que l'utilisateur ne soit obligé d'ouvrir manuellement le dossier Fonts ?
Merci d'avance et de toutes façons, merci pour ce site et ce forum très instructifs ....
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 6 avril 2007 à 22:13
Bonsoir,
Heureux que tu aies constaté qu'il était important d'écrire dans cette clé !
Peiné de voir que tu n'aies pas encore trouvé comment déterminer la version de l'OS !
Je t'invite donc à t'intéresser maintenant à la fonction GetVersionEx de la lubrairie Kernel32 de l'Api de Windows, juste pour voir à quoi elle pourrait te servir, dans cette affaire ...
Ce ne sera pas difficile si tu t'y penches un peu et je compte sur toi pour y parvenir.
Il te restera ensuite à écrire dynamiquement dans la bonne clé et les exemples et sources pour ce faire ne manquent pas sur ce forum.
NOTA : s'il subsiste un doute sur la partie du nom qui correspond, dans le chemin de la clé, à la version Windows de la machine client : un truc : tester si cette clé existe et contient bien déjà des fonts avant d'y ajouter la "valeur" de la tienne.
cs_youyou40
Messages postés65Date d'inscriptionlundi 20 décembre 2004StatutMembreDernière intervention28 avril 2022 6 avril 2007 à 20:51
Bonsoir
@jmfmarques
J'ai déjà bien sûr regardé dans la base de registre et les polices sont listées dans la clé HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts( dans Windows XP SP2 ).
Effectivement après l'appel de ces APIs , la police est fonctionnelle mais n'apparait pas dans cette clé.
Par contre si je rajoute une valeur pour cette police dans cette clé, là tout fonctionne.
Tu parles de cela ?
Tu suggères donc d'écrire le nom de la police dans cette clé avec WSH ou les APIs qui donnent accès au registre ?
Mais cette clé , elle ne dépend pas de la version de Windows ? Il n'y a pas d'API qui fasse directement l'inscription des polices dans le registre ? C'est le sens de ma question depuis le début.
cs_youyou40
Messages postés65Date d'inscriptionlundi 20 décembre 2004StatutMembreDernière intervention28 avril 2022 7 avril 2007 à 16:05
Bonjour,
merci jmfmarques pour toutes ces indications.
J'arrive donc bien à installer ma police en utilisant les fonctions AddFontRessource , SendMessage puis en écrivant dans la clé de registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts grâce aux fonctions RegOpenKeyEx , RegSetValueEx et RegCloseKey .
J'ai obtenu la version de Windows avec GetVersinEx, pour vérifier s'il s'agissait d'une version NT ou 95/98/Me .