2016-06-29 4 views
-2

Im Batch-Dateiskript kopiert die erste unterste Zeile myFont.ttf in das Windows-Schriftartverzeichnis und die zweite Zeile registriert sie in der Registrierung.Schriftart-Batch-Datei und VBScript installieren

XCOPY "myFont.ttf" "C:\Windows\Fonts" 
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "myFont (TrueType)" /t REG_SZ /d myFont.ttf /f 

Eine Anwendung sendet die WM_FONTCHANGE Nachricht an alle Fenster der obersten Ebene im System nach den Pool der Font-Ressourcen zu ändern.

Um diese Nachricht zu senden, rufen Sie die Funktion SendMessage mit den folgenden Parametern auf.

folgenden Code ist in VB-Programmiersprache, aber ich muss WM_FONTCHANGE mit SendMessage-Funktion im Batch-Skript oder zumindest VBScript senden, aber ich weiß nicht, wie es in Batch-Datei Skript, Wenn Sie wissen, mir bitte helfen, Vielen Dank.

Private Const HWND_BROADCAST = &HFFFF& 
Private Const WM_FONTCHANGE = &H1D 
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 Sub Form_Load() 
    Dim res As Long 
    res = AddFontResource("C:\Fonts\Nordic__.ttf") 
    If res > 0 Then 
     SendMessage HWND_BROADCAST, WM_FONTCHANGE, 0, 0 
     MsgBox res & " fonts were added!" 
    End If 
End Sub 
+3

Bei StackOverflow handelt es sich nicht um einen Code-Konvertierungsservice, bei dem Sie Code in einer Sprache in der gewünschten Sprache schreiben und Code für Sie erstellen. Wo ist der Code, den Sie geschrieben haben, in einer der beiden Sprachen zu tun, und auf welches ** spezifische Problem haben Sie dabei gestoßen? –

+0

Weder VBScript noch Batch können tun, was Sie wollen. –

+0

[Powershell könnte tun, was Sie wollen] (https://github.com/wormeyman/FindFonts/blob/master/Add-Font.ps1) – JosefZ

Antwort

0

Schließlich fand ich die Lösung, besonderer Dank an JosefZ, wie er sagte Powershell ist die Lösung, Alles, was Sie brauchen, ist herunterladen und kopieren Add-font.ps1 von Michael Murgolo in Ihren Projektordner und kopieren Sie unten Zeilen in Batch-Datei:

@echo off 
PowerShell Set-ExecutionPolicy RemoteSigned 
PowerShell -command "& '%~dp0Add-Font.ps1' -path '%~dp0myFont.ttf'" 

Beachten Sie, dass Sie dieses Skript als Administrator ausführen müssen, daher müssen Sie% ~ dp0 vor Ihren Dateien hinzufügen.

Das ist alles, Sie brauchen nicht einmal die Codes in meiner Frage, viel Glück.