Path zu den Fonts bestimmen

Antworten
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Path zu den Fonts bestimmen

Beitrag von af0815 »

Hallo,

ist es möglich den Path zu den Fonts unter WIndows zu bestimmen ohne ShGetFolderLocation und der CLSID CSIDL_FONTS zu verwenden ?. Das bläht den Code mit ActiveX und anderen Bibliotheken unnötig auf und das möchte ich vermeiden.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

shokwave
Beiträge: 470
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Path zu den Fonts bestimmen

Beitrag von shokwave »

Hilft dir ein Registrykey?

Code: Alles auswählen

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders


Edit: Ich zieh die Frage zurück.

Code: Alles auswählen

!Do not use this registry key
Use the SHGetFolderPath or SHGetKnownFolderPath function instead
mfg Ingo

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Path zu den Fonts bestimmen

Beitrag von wp_xyz »

Den Inhalt der Umgebungsvariablen WINDIR bzw. SYSTEMROOT abfragen und das Unterverzeichnis fonts an den erhaltenen Pfad anhängen. Kleines Restrisiko, falls jemand sein System so verkonfiguriert hat, dass die Fonts nicht in diesem Verzeichnis sind - aber dann geht wahrscheinlich irgendetwas anderes auch nicht. Für diesen Fall das Font-Verzeichnis in die Config-Datei des Programms schreiben, so dass man notfalls etwas ändern kann.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Path zu den Fonts bestimmen

Beitrag von af0815 »

Das mit dem Anhängen wurde bemängelt :-) und die Änderung betrifft FPC-Sourcen

Einerseits machen es die FPC Entwickler selber - hehe - andererseits wird das wieder von anderen Personen bemängelt (wenn ich den Vorschlag mache). Das blöde an OpenSource ist, das man es sieht - lol.

Ich komme schon langsam einer Lösung näher, nachdem es ja Windows only sein darf, da es sowieso mit ifdef's versehen ist. Aber es sollte auf den verschiedenen Windowsversionen (sauber) funktionieren.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

shokwave
Beiträge: 470
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Path zu den Fonts bestimmen

Beitrag von shokwave »

Hast du die windirs.pp schon entdeckt?

Code: Alles auswählen

uses ..., windirs;
...
showMessage('FontsFolder: '+GetWindowsSpecialDir(20, False)); //20 da die Zeile fehlt für: CSIDL_FONTS = $0014; { %SYSTEMROOT%\Fonts}
 


Am Ende ruft der zwar auch _SHGetFolderPathW auf, aber das sieht für mich wie ein normaler Windowsapiaufruf aus.
mfg Ingo

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Path zu den Fonts bestimmen

Beitrag von af0815 »

Ja, habe ich im Fokus, warum ich gezögert habe, die Routine ist bein Windows offziell deprecated. Deswegen habe ich noch nicht einen offiziellen Patch erstellt.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten