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
Path zu den Fonts bestimmen
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- 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
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- 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
Hilft dir ein Registrykey?
Edit: Ich zieh die Frage zurück.
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
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.
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- 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
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
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).
-
- 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
Hast du die windirs.pp schon entdeckt?
Am Ende ruft der zwar auch _SHGetFolderPathW auf, aber das sieht für mich wie ein normaler Windowsapiaufruf aus.
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
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- 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
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
Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).