Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Windows FONT per Script hinzufügen

Mitglied: totaler

totaler (Level 1) - Jetzt verbinden

13.11.2005, aktualisiert 16.11.2005, 11419 Aufrufe, 6 Kommentare

Hallo zusammen,

ich habe ein Script für die Installation von Visualisierungsrechnern
geschrieben.

d.h. Nachdem XP installiert wurde, muss nur noch diese Script
ausgeführt werden, dann werden alle notwendigen Files von einem Server
kopiert
-Dienste installiert
-Scheduler TASK's angelegt
-Iconen auf dem Desktop erzeugt
-Drucker installiert

Damit die Software läuft müssen jedoch 3 Fonts installiert werden,
was ich bis jetzt immer noch manuel machen muss,
indem ich die Fontfile mit dem Explorer in das c:\windows\fonts Verzeichnis ziehe.

Dann geht automatisch ein Fenster auf und die Fonts werden installiert.
Das alleinige hineinkopieren der Files mit Robocopy etc in das c:\windows\fonts Verzeichnis
reicht nicht aus.

Vielleicht weiß jemand wie ich das Problem mit cmd oder vbs lösen kann

Mfg

Hannes
Mitglied: Biber
13.11.2005 um 03:18 Uhr
Moin, Hannes,

gute Nachricht - machbar ist es. Weniger gute Nachricht: ein paar Infos fehlen (mir) noch.

Also, erstmal der Ansatz: Nur die Fonts in %windir%\Fonts kopieren reicht in der Tat nicht. Hast Du ja gemerkt.
Zusätzlich müssen die neuen Fonts auch als neue Resource hinzugefügt und "bekannt gemacht" werden.
Das läuft über zwei API-Aufrufe in der GDI32.dll und User32.dll. Das lässt sich mit einem *.vbs-Schnipsel lösen.
Dann allerdings sind diese Fonts nur für die aktuelle Windows-Session registriert. Da es ja permanent sein soll, muss noch ein Registry-Eintrag (je Font) geschrieben werden - der allerdings in HKEY_LOCAL_MACHINE.

Also wären zur handwerklichen Umsetzung Deiner Anforderung noch folgende Details hilfreich:
- diese drei Fonts haben auch feste Namen? Die man/frau "hart" ins Skript schreiben kann?
- Oder variiert das (Fontnamen in einer zusätzlichen Ini-Datei o.ä.)?
- Nur zur Sicherheit: Installation wird gemacht mit Adminrechten? wegen HKLM etc...
- Zielsysteme: ausschließlich > NT? Oder >= XP?
- in was ist denn Dein bisheriges Script geschrieben? Batch?
- werden Logdateien geschrieben?
- ist Deine bisherige Installation vollständig "unattended"? Was soll bei Fehlern ("Font konnte nicht installiert werden") passieren? MsgBox? Abbruch?

Grundsätzlich sollte es mit einer kombinierten Batch/*.vbs-Lösung möglich sein.

Erstmal gespannt auf Antworten
Biber
Bitte warten ..
Mitglied: totaler
13.11.2005 um 11:55 Uhr
Hallo Biber,

schönen Sonntag erstmal , dass geht ja schnell

-Die Fonts haben immer den gleichen Namen
-Adminrechte sind vorhanden
-BS ist hauptsächlich XP ein paar Ausnahmen mit W2K
-Am Anfang waren die Scripts nur in VBS, als ich dann die Möglichkeiten von CMD
erkannte, ergänze ich schritt für Schritt Bereiche in CDM Scripte (schneller)
(Überleg mir jetzt immer vorher mit welcher Art von Script, wird die Aufgabe am
effektivsten und am schnellsten umgesetzt)
-Es wird von jeder Aktion ein Logfile Lokal geschrieben, und nach Fertigstellung auf einen
Logfileserver geschrieben
-Die Scripte sind so geschrieben, dass sie keine Eingabe benötigen (Konfig über INI),
sollte trotzdem ein Fehler auftreten, wird es in einem IE-Fenster (hier wird auch das lokale
Logfile dargestellt) in roter Schrift angezeigt, und bleibt am Bildschirm stehen

Schöne Grüße

Hannes
Bitte warten ..
Mitglied: Biber
13.11.2005 um 14:41 Uhr
Moin, Hannes,

Wenn Du selbst schon skripterfahren bist, brauche ich ja nicht alles in epischer Breite ausführen. Dann lieber eine Skizze mit den nötigen Schritten.

1. Die beiden API-Functions, die Du brauchst

Private Declare Function AddFontResource Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFileName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const HWND_BROADCAST = &HFFFF
Private Const WM_FONTCHANGE = &H1D

2. Die AddFontResource aufrufen mit Parameter "pfad\zum\FontFile".
Rückgabe > 0 (bzw. 1) ...Font wurde hinzugefügt
Rückgabe <= 0 Hat nicht geklappt. (ich glaube, kleiner als 0 gibts hier gar nicht ??)

3. Wenn erfolgreich, dann die SendMessage aufrufen
SendMessage HWND_BROADCAST, WM_FONTCHANGE, 0, 0
' Registrieren/bekannt machen des Fonts im System

4. Das ganze gilt aber nur für die aktive Windows-Session. Dauerhaft machen mit Schreiben eines Eintrags in HKLM
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
Jeder Font sollte im folgenden Format eingetragen werden:
Keyname: [Fontname (lesbar für den User)] z.B. "HannesFont (True Type)"
Keyinhalt: [Fontfile-Dateiname] z.B. "Hannes01.ttf".
Wenn in %windir%\Fonts installiert OHNE Pfadangabe, sonst "c:\windows\blah\Hannes01.ttf"

~~~
Das sollte es gewesen sein.
Schönen Sonntag noch
Frank / der Biber aus Bremen
Bitte warten ..
Mitglied: Bob-BuCs
13.11.2005 um 15:39 Uhr
Hallo,

mach Doch einfach ein MSI, da wird alles für dich erledigt.
Kann man dann sogar per AD verteilen.
Geht ganz einfach z. B. mit Installer to Go:

http://dev4pc.com/

Einfach eine Schriftart zur Installation mit einfügen.

Bob
Bitte warten ..
Mitglied: totaler
15.11.2005 um 23:03 Uhr
Hallo Biber,

vielen Dank für die Information.

Die Methode mit der Registry habe ich gleich verstanden,
und werde ich auch wahrscheinlich verweden.

Aber nochmal zu der ersten Variante mit den API-Calls

Kann ich über VBS scripte API-CAll aufrufen ?

Wie funktioniert so etwas ohne diese vorher in ein OCX zu verpacken,
denn soetwas hätte ich schon öfter brauchen können?

Gruß und Danke

Hannes
Bitte warten ..
Mitglied: Bob-BuCs
16.11.2005 um 00:08 Uhr
Warum machst Du es ncht per MSI (s. mein Posting ganz unten)?

Ist doch super elegant.

Bob
Bitte warten ..
Ähnliche Inhalte
Windows Server
Fonts installieren auf Windows 2012R2
Frage von kellbiddenWindows Server1 Kommentar

Hallo Ich hab hier ein Problem: Ich sollte Fonts von vom Typ .pfb und .afm auf einem 2012R2 Server ...

Entwicklung
VB Script Drucker hinzufügen
Frage von Marcel1989Entwicklung3 Kommentare

Funktionsweise sollte definitiv sein das mit einem Script sich 2 verschiedene Betriebssysteme ein und denselben Drucker holen. Mein Script ...

Installation

(?) LibreOffice unter Windows hindern, Fonts zu installieren

Frage von dolschInstallation6 Kommentare

Lässt sich LibreOffice auf eine andere Weise als durch eine administrative Installation mit Hilfe von "msiexec /a" daran hindern, ...

VB for Applications

Zweites Gateway per Script hinzufügen

gelöst Frage von YannoschVB for Applications7 Kommentare

Guten Tag zusammen :), kurze Frage: Wie ist es, bzw. ist es überhaupt möglich per Script ein zweites Gateway ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 2 TagenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 2 TagenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 3 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 3 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement18 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...

Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen17 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

Google Android
Empfehlung: Android Ortungsapp
gelöst Frage von certifiedit.netGoogle Android13 Kommentare

Guten Morgen, grundsätzlich vorweg, ich wollte mich eben schlau machen, bzgl einer Ortungsapp, welche Androidbasiert einem anderen Androidsmartphone mitteilt, ...

Router & Routing
VPN hinter zweiter Fritzbox nutzen im Nachbarhaus
gelöst Frage von georg2204Router & Routing11 Kommentare

Hallo zusammen, ich blicke hier leider nicht mehr so ganz durch. In Haus 1 steht eine Fritzbox 7390, diese ...