IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Installation police de caractères


Sujet :

WinDev

  1. #1
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut Installation police de caractères
    Bonjour à tous,

    J'essaye en vain d'installer des polices sous Windows 7 et 8 avec un bout de code que j'ai trouvé.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    lpFileName1 	est une chaîne ASCIIZ sur 255 =  "Blenda Script.otf"
    DirectoryFonts 	est chaîne=SysRep(srFontes)
    nHWnd 			est un entier=Handle()
    retval 			est un entier
    nHWND_BROADCAST est un entier=65535 //&HFFFF en hexadécimal
     
    nIdFic1 est un entier= fOuvre(DirectoryFonts+"\"+lpFileName1,foLecture)
    SI nIdFic1=-1 ALORS
    	SI PAS fFichierExiste(DirectoryFonts+"\"+lpFileName1) ALORS
    		SI fCopieFichier(fRepExe()+"\fonts\"+lpFileName1,DirectoryFonts+"\"+lpFileName1) ALORS
    			retval=AppelDLL32("gdi32","AddFontResourceA",&lpFileName1)
    			SI retval<>0 ALORS
    				SendMessage ( nHWND_BROADCAST , nHWnd , 0 , 0 )
    			FIN
    		FIN
    	FIN
    FIN
    Si quelqu'un a une idée elle est la bienvenue.

    Merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    J'utilise la même API et je n'envoie pas de handle en paramètre mais une constante Windows :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WM_FONTCHANGE est un entier = 0x001D 
    SendMessage ( HWND_BROADCAST , WM_FONTCHANGE , 0 , 0 )
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  3. #3
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    Bonjour à tous,

    Je sais que la discussion commence à dater mais voici ma petite contribution grâce à la grande aide de mes compères ci-dessus

    Donc pour ma part, la problématique que je rencontre est que les sessions Windows ne sont pas forcément administrateur et donc l'accès au dossier Font n'est pas accessible en écriture.
    Donc la fonction AddFontResourceA permet de monter en mémoire les font sans les installer. Elles sont ensuite décharger à la prochaine ouverture de session.
    J'ai donc tout simplement enlevé toutes les parties testant la présence ou l'ouverture du fichier à tester.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    lpFileName1 	est une chaîne ASCIIZ sur 255 =  "Blenda Script.otf"
    retval 			est un entier
    nHWND_BROADCAST est un entier=65535 //&HFFFF en hexadécimal
     
    retval=AppelDLL32("gdi32","AddFontResourceA",&lpFileName1)
    SI retval<>0 ALORS
    	SendMessage ( nHWND_BROADCAST , nHWnd , 0 , 0 )
    FIN

  4. #4
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    Bonjour à tous,

    Je rencontre quelques soucis en production pour l'utilisation du code ci-dessus.
    Sur certains postes, Windows 10, le chargement de la police bloque à la ligne 6, donc mon appli ne répond plus, et pas de message d'erreur.

    Avez-vous déjà rencontré ce problème ?

  5. #5
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Hello Lo²,
    2 questions à 2 balles :
    - Le type de chaîne requis est bien du ASCIIZ ?
    - La taille est de 255, mais ta chaîne fait beaucoup moins. Besoin de la réduire ?
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  6. #6
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    Hello Frenchsting,

    Il ne s'agit pas de question à 2 balles
    En effet, ma chaîne fait moins et je peux donc la réduire.

    Tu penses que ça vient de là ?

  7. #7
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Je n'en sais rien, mais qui ne tente rien n'a rien

    Et sur le type asciiZ ?
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  8. #8
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    C'est pas faux

    Pour le type asciiz, je ne me suis pas posé de question, c'est du recopiage de code.
    Il me semble avoir vu de l'Unicode sur quelques autres exemples.

    Je vais essayer tout ça.

  9. #9
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    Le changement en Unicode ou la réduction de la taille de la chaîne n'ont pas donné de résultat probant

    D'autres idées ?

  10. #10
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Chaine ANSI ?
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  11. #11
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 180
    Points : 275
    Points
    275
    Par défaut
    bonjour,

    voici comment je procède et qui fonctionne, testez et dites moi si cela solutionne votre problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    PROCEDURE installFonts(_bInstall est un booléen=Faux)
     
    lRet                                    est un entier
    szPathFont2Install                	est une chaîne
    szNameFont                              est une chaîne
    HWND_BROADCAST                         	est un entier
    //WM_FONTCHANGE                    		est un entier
    i					est un entier
     
    szNameFont = "LeNomDeMaFont.ttf"
     
    HWND_BROADCAST = 0xffff
    //WM_FONTCHANGE  = 0x001D
     
    szPathFont2Install = fRepExe()+[fSep()]+szNameFont
     
    SI fFichierExiste(szPathFont2Install)
    	TANTQUE API("gdi32.dll","RemoveFontResourceA",&szPathFont2Install)
    		i++
    		SI i > 50 ALORS SORTIR
    	FIN
     
    	SI _bInstall ALORS
    		lRet = API("gdi32.dll","AddFontResourceA",&szPathFont2Install)
    		SI lRet = 0 ALORS
    			Erreur(ErreurInfo())
    			RETOUR
    		FIN
    //		SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0)
    	FIN
    FIN
    le "RemoveFontResourceA" est là en cas de fermeture du logiciel pour décharger les fonts installées car à force de faire un "AddFontResourceA" cela fait saturé la machine
    Cordialement JeAn-PhI

  12. #12
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    Bonjour JeAn-PhI,

    Ca fontionne nickel.
    Merci encore.

Discussions similaires

  1. [WS 2008 R2] GPO - Droit d'installation police de caractères
    Par djsbens dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 12/11/2012, 16h45
  2. Proposer l'installation d'une police de caractères
    Par bakonu dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 04/03/2009, 11h13
  3. Charger des polices de caractères (ttf) sans les installer
    Par Arkham46 dans le forum Contribuez
    Réponses: 0
    Dernier message: 08/01/2009, 10h49
  4. installer font (police de caractère)en VB
    Par cbleas dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/11/2007, 11h58
  5. installer nouvelle police de caractère pour open office
    Par Biosox dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 01/08/2007, 00h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo