安装字体批处理文件和vbscript

时间:2016-06-29 23:20:18

标签: batch-file vbscript

在批处理文件脚本中,下面第一行将myFont.ttf复制到Windows字体目录中,第二行将其注册到注册表中。

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

应用程序在更改字体资源池后,将WM_FONTCHANGE消息发送到系统中的所有顶级窗口。

要发送此消息,请使用以下参数调用SendMessage函数。

下面的代码是VB编程语言,但我需要在批处理文件脚本或至少vbscript中使用SendMessage函数发送WM_FONTCHANGE,但我不知道如何在批处理文件脚本中,如果你知道请帮帮我,谢谢。

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

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方案,特别感谢JosefZ,因为他说Powershell是解决方案,所有你需要的是Add-font.ps1 Michael Murgolo下载并复制到你的项目文件夹并复制下面的行进入批处理文件:

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

请注意,您必须以管理员身份运行此脚本,因此您需要在文件之前添加%~dp0。

多数,你甚至不需要我的问题中的代码,祝你好运。