Autor Beitrag
Fujitsufan
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 06.12.18 12:59 
Hallo,

hat jemand Erfahrung mit Windows Font Dateien? Es geht um installierte Schriften.
Diese befinden sich unter C:\Windows\Fonts\.....
Da gibt es welche die sind direkt in diesem Verzeichnis installiert und es gibt welche die sind in einem Unterverzeichnis mit dem Familienname der Schrift installiert.
Die Font Dateien haben einen Fontnamen (z.Bsp. Arial Halb Schmal Fett Kursiv) und einen Dateinamen (z.Bsp. ARIALNBI.TTF).

Jetzt die Frage:
Gibt es eine einfache Methode dies Font Datei auf ihre Existenz zu prüfen? Vergleichbar mit der Methode File.Exists("ARIALNBI.TTF")?
Dies funktioniert leider nicht.
Auch weitere Funktionen die ich in verschiedenen Foren gefunden habe sind nur in der Lage zu prüfen ob die Fontfamilie existiert.
Code wie folgt:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
private bool IsFontInstalled(string fontName) {
    using (var testFont = new Font(fontName, 8)) {
        return 0 == string.Compare(
            fontName,
            testFont.Name,
            StringComparison.InvariantCultureIgnoreCase);
    }
}

Der Smily soll ´ne 8 sein. (Edited by Mod.)

Vielen Dank mal vorerst.
MfG.
Fujitsufan

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Moderiert von user profile iconTh69: Beitragsformatierung überarbeitet.
Moderiert von user profile iconTh69: Topic aus C# - Die Sprache verschoben am Do 06.12.2018 um 12:25
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 06.12.18 13:27 
Du solltest nicht direkt auf der Platte prüfen. Das Verfahren wie/wo von Windows Fonts abgelegt/verwaltet werden sollte man, wenn man nicht besondere Gründe hat, Windows überlassen und kein inneres Wissen benutzen. Dieses innere Wissen könnte unvollständig sein bzw. beim nächsten Patch/Fix/Version von Windows ungültig sein.

Benutze einfach die offizielle Api. Z.B. via der InstalledFontCollection Klasse.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 07.12.18 13:40 
- Nachträglich durch die Entwickler-Ecke gelöscht -