Seite 1 von 2

Fontinstallation

Verfasst: 29 Sep 2010, 08:46
von Reddy
Hallo,

ich suche einen Weg über opsi in Windows 7 Fonts zu installieren.
Mit WinXP geht es problemlos indem ich die Fonts in C:\windows\fonts kopiere.
Aber mit Win7 funktioniert dieser Weg nicht.
Das kopieren klappt laut Log-Eintrag zwar, aber die Fonts werden nicht angezeigt.
Hat jemand eine Lösung?

Re: Fontinstallation

Verfasst: 29 Sep 2010, 12:51
von karni
Hallo,
ich kopiere Fonts unter WindowsXP auch, aber ich muss Sie "registrieren" so zu sagen, damit sie sichtbar sind.

So sieht es aus:
[Registry_edit]
openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]
set "Eurostile (TrueType)"="Eurostile.ttf"
set "Eurostile Bold (TrueType)"="Eurostile Bold.ttf"
set "Eurostile-Black-DTC (TrueType)"="Eurostile-Black-DTC.ttf"
set "EurostileExtended-Roman-DTC (TrueType)"="EurostileExtended-Roman-DTC.ttf"

Vielleicht musst du für Windows7 auch "sagen", dass die Fonts existieren....

Re: Fontinstallation

Verfasst: 02 Dez 2010, 15:42
von it-service
hi,
ich habe das letztens erst gebaut.
Es gibt ein Microsoft Tool dafür. Nennt sich fontinst.exe. Findest du auf der Microsoft HP aber nicht zum Download. Aber wenn du mal googlest kommst du da hin. Hab den Link leider nicht mehr aber man ist ja mit seinen Problemen nie allein ;-)
Jedenfalls musst du einen Ordner erstellen in dem alle Schriftarten die du installieren möchtest enthalten sind. Dazu erstellst du im selben Verzeichnis eine font.inf Datei mit folgendem Aubau:

[fonts]
schriftart1.ttf
schriftart2.ttf

usw.

die fontinst.exe legst du auch mit in das Verzeichnis. Im Inst-Skript des Opsi-Pakets dann einfach mit dem Winbatch-Aufruf fontinst.exe /f font.inf die Schriftarten installieren lassen. ;-)
gibt auch noch andere Möglichkeiten mit AutoIT-Skripten oder nLite. ist aber aufwendiger finde ich.

um die dateinamen der Schriftarten in die INF-Datei zu Schreiben einfach über cmd den Befehl "dir /b > font.inf" verwenden.

mfg

Re: Fontinstallation

Verfasst: 02 Dez 2010, 15:51
von it-service
bitteschön ;-)

Re: Fontinstallation

Verfasst: 02 Dez 2010, 16:05
von wolfbardo
Bitte keine

Code: Alles auswählen

fontinst.exe
Dateien im Forum hochladen.

Danke und Gruss
Bardo Wolf

Re: Fontinstallation

Verfasst: 02 Dez 2010, 18:06
von Groo
Bei mir (win7 64bit) funktionierts wie's Karni beschrieben hat.

Re: Fontinstallation

Verfasst: 02 Dez 2010, 18:09
von it-service
bei 100 SChriften beispielsweise hat man da aber ganz schön schreibarbeit ;-)

Re: Fontinstallation

Verfasst: 18 Okt 2012, 08:51
von stitzedv
Habe einen Link bei Microsoft gefunden: Fontinst.exe
Lässt sich aber nicht unter 64-Bit ausführen (16-Bit Anwendung)

Re: Fontinstallation

Verfasst: 23 Okt 2012, 12:02
von lars_k
Hallo ,

wir benutzen dafür ein Autoitscript ( aus dem Forum )
Dieses nimmt alle Fonts aus dem Verzeichnis "depot".

Code: Alles auswählen

Aufruf : InstallFont(@ScriptDir&"\depot\*.*") ; Pfadangabe
Func InstallFont($sSourceFile, $sFontDescript="", $sFontsPath="")
    Local Const $HWND_BROADCAST = 0xFFFF
    Local Const $WM_FONTCHANGE = 0x1D

    If $sFontsPath = "" Then $sFontsPath = @WindowsDir & "\fonts"

    Local $sFontName = StringRegExpReplace($sSourceFile, "^.*\\", "")
    If Not FileCopy($sSourceFile, $sFontsPath & "\" & $sFontName, 1) Then Return SetError(1, 0, 0)

    Local $hSearch = FileFindFirstFile($sSourceFile)
    Local $iFontIsWildcard = StringRegExp($sFontName, "\*|\?")
    Local $aRet, $hGdi32_DllOpen = DllOpen("gdi32.dll")

    If $hSearch = -1 Then Return SetError(2, 0, 0)
    If $hGdi32_DllOpen = -1 Then Return SetError(3, 0, 0)

    While 1
        $sFontName = FileFindNextFile($hSearch)
        If @error Then ExitLoop

        If $iFontIsWildcard Then $sFontDescript = StringRegExpReplace($sFontName, "\.[^\.]*$", "")

        $aRet = DllCall($hGdi32_DllOpen, "Int", "AddFontResource", "str", $sFontsPath & "\" & $sFontName)
        If IsArray($aRet) And $aRet[0] > 0 Then
            RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts", _
                $sFontDescript, "REG_SZ", $sFontsPath & "\" & $sFontName)
        EndIf
    WEnd

    DllClose($hGdi32_DllOpen)
    DllCall("user32.dll", "Int", "SendMessage", "hwnd", $HWND_BROADCAST, "int", $WM_FONTCHANGE, "int", 0, "int", 0)
    Return 1
EndFunc

Gruß

Lars

Re: Fontinstallation

Verfasst: 20 Mär 2014, 16:23
von D1Ck3n
Hallo,
das Thema ist zwar schon alt, aber mein Problem ist recht aktuell:

Ich will einfach nur eine neue Schriftart überall auf unsere Win 7 Maschienen verteilen, aber irgendwie klappt das nicht :?:

Mein Skript:

Code: Alles auswählen

[Initial]
Message= Schriftarten werden installiert...
SetLogLevel=6
ExitOnError=true
ScriptErrorMessages=true
TraceMode=off

[Aktionen]
Files_copy
Registry_edit

[Files_copy]
copy -s "%SCRIPTPATH%\*.ttf" "C:\Windows\Fonts\."

[Registry_edit]
openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]
set "DINOffcPro (TrueType)"="DINOffcPro.ttf"
set "DINOffcPro-Bold (TrueType)"="DINOffcPro-Bold.ttf"
set "DINOffcPro-BoldIta (TrueType)"="DINOffcPro-BoldIta.ttf"
set "DINOffcPro-Ita (TrueType)"="DINOffcPro-Ita.ttf"
set "DINOffcPro-Light (TrueType)"="DINOffcPro-Light.ttf"
Dieses Skript müsste doch richtig sein Oo

Gruß

D1Ck3n