Hallo Tom,
[...] Ich habe versucht, die von einem anderen Win98-Rechner im Netz direkt aus dem Font-Verzeichnis zu holen. Leider wurde mir über das Netz nur eine sehr beschränkte Auswahl angezeigt.
ja, nämlich genau die Schriften, die auf dem Rechner, den du gerade bedient hast, sowieso schon installiert waren, stimmt's? 8-)
Woran liegt das?
Es liegt an der "Sonderbehandlung" bestimmter Systemverzeichnisse durch die übliche Windows-Shell, den Explorer.
Wenn der Explorer auf ein Verzeichnis mit gesetztem System-Attribut stößt, wird er nämlich ganz hibbelig. Das ist für ihn etwas ganz besonderes, und er weiß jetzt schon, dass er für die Anzeige dieses Verzeichnisses etwas besonderes tun muss. Was das genau ist, verrät ihm meistens eine Datei namens desktop.ini in diesem Verzeichnis, also liest er sich die mal schnell durch. Im Fonts-Verzeichnis steht zum Beispiel eine desktop.ini mit folgendem Inhalt:
[.ShellClassInfo]
UICLSID={BD84B380-8CA2-1069-AB1D-08000948F534}
Das versteht er als Anweisung, zur Anzeige des Verzeichnisinhalts den in der Registry unter dem o.g. CLSID-Schlüssel
HKCR\CLSID{CLSID}\InProcServer32
notierten Befehl (hier: fontext.dll) auszuführen. Der liefert ihm dann die Daten, die er als angeblichen Verzeichnisinhalt anzeigt. Was _wirklich_ im ausgewählten Verzeichnis steht, ist belanglos; entscheidend ist, was der Aufruf der fontext.dll zutage fördert. Diese DLL untersucht natürlich nur das lokale Fonts-Verzeichnis, für das tatsächlich ausgewählte Remote-Verzeichnis interessiert sie sich gar nicht.
Zur Demonstration kannst du mal an der Konsole folgende Sequenz abspulen:
d:
md Fonts
attrib +s Fonts
cd Fonts
copy %windir%\Fonts\desktop.ini
exit
So, und nun schau mal das neu angelegte Verzeichnis mit dem Windows-Explorer an. Der wird behaupten, dass da sämtliche im System installierten Schriften drin sind, obwohl das Verzeichnis bis auf die desktop.ini leer ist!
Fazit: Verwende nie den Windows-Explorer, wenn du den wirklichen Inhalt von Systemverzeichnissen wissen möchtest. Der bescheißt dich gern mal. Nimm dazu lieber einen alternativen Dateimanager, im schlimmsten Fall sogar cmd.exe als textbasierte Alternativ-Shell.
Schönen Abend noch,
Martin
--
Der Mensch denkt, Gott lenkt.
Der Mensch dachte, Gott lachte.