AddFontResource()

Thomasio

Erfahrenes Mitglied
Die Frage ist einfach:
Wie benutze ich in meiner Anwendung eine Schriftart die der User nicht installiert hat?

Problem dabei:
Windows verhält sich nicht immer gleich und ich weiss nicht woran es liegt

Wenn die Schriftart schon mal im System installiert war, selbst dann, wenn sie wieder gelöscht wurde, kann ich die Schriftart einfach ins Verzeichnis meiner Anwendung kopieren und ganz simpel machen:

Code:
AddFontResource("schriftname");
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);

Laut MSDN sollte das eigentlich immer so funktionieren, aber nachdem ich gerade mein System neu aufgesetzt habe, funktioniert das in der Praxis nicht mehr, bzw. nicht richtig, vermutlich deswegen, weil im neuen System die Schriftart noch nie installiert war und das Anwendungsverzeichnis nicht im path steht
Das äussert sich darin, dass die Anwendung fast 1 min braucht, bis das Fenster aufgeht

Mögliche Lösungen kann ich mir mehrere vorstellen, aber bei keiner weiss ich wie das geht

1) Wie muss AddFontResource() "richtig" aussehen, wenn die Schriftart aus dem Verzeichnis der Anwendung geladen werden soll?
2) Wie installiere ich dem User die Schriftart fest in sein System? Ich habe den INNO Setup Compiler, macht zwar wenig Sinn bei 1-File Anwendungen, aber zur Not solls mir recht sein, nur habe ich auch dort nichts zu Schriftart installieren gefunden, und einfach ins \fonts Verzeichnis kopieren reicht nicht
3) Wie füge ich in API plain bei Programmstart das Anwendungsverzeichnis in den path ein, ohne dass es bei doppelten Start mehrfach eingefügt wird?

Kann mir jemand auf die Sprünge helfen?
Danke im voraus
 
Zuletzt bearbeitet:
Zurück