Path zu den Fonts bestimmen

Path zu den Fonts bestimmen

Beitragvon af0815 » 10. Okt 2017, 05:18 Path zu den Fonts bestimmen

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).
af0815
 
Beiträge: 3266
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon shokwave » 10. Okt 2017, 11:04 Re: Path zu den Fonts bestimmen

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
shokwave
 
Beiträge: 410
Registriert: 15. Nov 2007, 16:58
Wohnort: Rudolstadt
OS, Lazarus, FPC: Win10 (L 1.6 FPC 3.0.0) | 
CPU-Target: i386,x64
Nach oben

Beitragvon wp_xyz » 10. Okt 2017, 11:05 Re: Path zu den Fonts bestimmen

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.
wp_xyz
 
Beiträge: 2281
Registriert: 8. Apr 2011, 08:01

Beitragvon af0815 » 10. Okt 2017, 14:59 Re: Path zu den Fonts bestimmen

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).
af0815
 
Beiträge: 3266
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon shokwave » 10. Okt 2017, 16:20 Re: Path zu den Fonts bestimmen

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
shokwave
 
Beiträge: 410
Registriert: 15. Nov 2007, 16:58
Wohnort: Rudolstadt
OS, Lazarus, FPC: Win10 (L 1.6 FPC 3.0.0) | 
CPU-Target: i386,x64
Nach oben

Beitragvon af0815 » 10. Okt 2017, 19:22 Re: Path zu den Fonts bestimmen

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).
af0815
 
Beiträge: 3266
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

• Themenende •

Zurück zu Windows



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried