Metadaten bzw. Schriftname aus einer TTF-Datei (Schrift-Datei) auslesen per VBSCRIPT
Hallo @ All!
Ich habe wieder mal ein Problem und beiße mir seit Tagen die Zähne aus damit.
Mein Problem:
Es ist fast allen bekannt, dass ene Schrift über den Namespace (FONTS) problemlos installiert werden kann
Const FONTS = &H14&
Set objShell = CreateObject("Shell.Application")
Set SysFonts = objShell.Namespace(FONTS)
objshell.CopyHere <Name>
(Copy & Paste reicht unter W7 meißtens nicht).
Es passiert aber oft, dass eine Schriftart bereits installiert (dateiname != Schriftname) ist und Windows fragt nach ob die Schrift nochmal installiert werden soll.
Da wir Verteilung in großen Stil machen (Silent auf 1000e PC) eher der worst case.
Auch die regstrierte Schrift über die Registry auszulesen + dazugehörige Datei arbeitet nicht zuverlässig (leider)
Meine letzte Idee dazu wäre noch die TTF-Datei selbst auszulesen, jedoch habe ich keien Ahnung wie ich das bewerkstelligen soll. Die Funktion die ich verwende (objfso.OpentextFile(datei, 1)) funkt nicht. Es werden nur ein paar Zeichen ausgelesen dann nichts mehr.
Hat hier jemand eine Idee wie ich aus einer TTF-Datei den Schriftname auslesen kann per VBSCRIPT? ich komme da einfach nicht mehr weiter.
Danke für die Hilfe!
lg
Mayho
Ich habe wieder mal ein Problem und beiße mir seit Tagen die Zähne aus damit.
Mein Problem:
Es ist fast allen bekannt, dass ene Schrift über den Namespace (FONTS) problemlos installiert werden kann
Const FONTS = &H14&
Set objShell = CreateObject("Shell.Application")
Set SysFonts = objShell.Namespace(FONTS)
objshell.CopyHere <Name>
(Copy & Paste reicht unter W7 meißtens nicht).
Es passiert aber oft, dass eine Schriftart bereits installiert (dateiname != Schriftname) ist und Windows fragt nach ob die Schrift nochmal installiert werden soll.
Da wir Verteilung in großen Stil machen (Silent auf 1000e PC) eher der worst case.
Auch die regstrierte Schrift über die Registry auszulesen + dazugehörige Datei arbeitet nicht zuverlässig (leider)
Meine letzte Idee dazu wäre noch die TTF-Datei selbst auszulesen, jedoch habe ich keien Ahnung wie ich das bewerkstelligen soll. Die Funktion die ich verwende (objfso.OpentextFile(datei, 1)) funkt nicht. Es werden nur ein paar Zeichen ausgelesen dann nichts mehr.
Hat hier jemand eine Idee wie ich aus einer TTF-Datei den Schriftname auslesen kann per VBSCRIPT? ich komme da einfach nicht mehr weiter.
Danke für die Hilfe!
lg
Mayho
Please also mark the comments that contributed to the solution of the article
Content-ID: 187829
Url: https://administrator.de/contentid/187829
Printed on: September 19, 2024 at 18:09 o'clock
2 Comments
Latest comment
Hallo mayho33.
Übergib mal den vollen Dateiname an dieses Script (oder Drag/Drop):
Grüße
rubberman
Übergib mal den vollen Dateiname an dieses Script (oder Drag/Drop):
WScript.Echo GetFontName(WScript.Arguments(0))
Function GetFontName(sAbsPath)
Dim oFSO, oShellApp, oFolder, oFolderItem
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oShellApp = CreateObject("Shell.Application")
Set oFolder = oShellApp.NameSpace(oFSO.GetParentFolderName(sAbsPath))
Set oFolderItem = oFolder.ParseName(oFSO.GetFileName(sAbsPath))
GetFontName = oFolderItem.ExtendedProperty("DocTitle")
Set oFolderItem = Nothing
Set oFolder = Nothing
Set oShellApp = Nothing
Set oFSO = Nothing
End Function
Grüße
rubberman