LokutusvB - Mi 09.11.11 15:58
Titel: Windows-Schrift installieren
Hallo,
im Netz gibt es einige Diskussionen über das Thema "Delphi Windows Font installieren/kopieren/löschen". Aber keine der Diskussionen schafft wirklich Klahrheit.
Ich möchte für das Nutzen von Barcodes in einem Delphi-Programm (Delphi XE) 2 Barcode-TTF-Schriftdateien in Windows installieren bzw. wieder löschen.
Laut Delphi-Hilfe und Internet gibt es dafür die Funktionen Add bzw. RemoveFontRessource mit anschließend SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);.
Das hat bei mir allerdings zur Folge, wenn ich den PC neustarte, sind die Schriften wieder weg. Kopiere ich die Windows-Schriften einfach via Datei-Kopie in den Windows\Fonts-Ordner, müßte ich noch nachträglich den Ordner einmalig öffnen und dann wieder schließen. Wieso geht das nicht alles automatisch mit AddFontRessource?
Und wie bekomme ich eine solche Schrift wieder gelöscht? Die Datei aus dem Windows\Fonts Ordner per DeleteFile löschen, reicht nicht aus. Öffne ich den Ordner, sind die Schriftdateien noch immer mit einer Größe von 0 kb aufgelistet. RemoveFontRessource tut es hier an der Stelle leider auch nicht.
Kann hier bitte mal aufklären und Ordnung in das "Wirrwarr" schaffen?
Moderiert von
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mi 09.11.2011 um 15:35
LokutusvB - Do 10.11.11 08:45
HeftCD hat folgendes geschrieben : |
Ich seh Dein Problem nicht. |
Wenn möglich, würde ich das Problem gern ohne Shellexecute lösen. Sonst könnte ich mir auch gleich eine Batch-Datei schreiben und Delphi links liegen lassen. Das Problem der Schriften muß doch auch mit Delphi ohne Shellexecute lösbar sein.
Danke für den Link, ich werde mir die Diskussion mal anschauen.
...
Ich habe mir die Diskussion mal angeschaut. Wenn ich die Lösung richtig verstehe, ist dort die Schrift nur innerhalb der Anwendung gültig. Ich benötige jedoch eine Lösung, in der die Schrift für alle Windows-Anwendungen zur Verfügung steht, bis sie eben wieder irgendwann vom Delphi-Programm gelöscht werden soll.
Zusatz:
Ich habe das hier gefunden:
http://delphi-treff.de/tipps/system/systemfunktionen/fonts-installieren-und-deinstallieren/
Wenn ich jedoch RemoveFontRessource mit SendMessage aufrufe, ist die Schrift noch immer im Fonts-Verzeichnis enthalten.