【问题标题】:Install font batch file and vbscript安装字体批处理文件和 vbscript
【发布时间】:2016-06-29 23:20:17
【问题描述】:

在批处理文件脚本中,下面第一行将 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

【问题讨论】:

  • StackOverflow 不是代码转换服务,您可以在其中发布以您想要的语言编写的代码,我们会为您生成代码。您尝试用这两种语言编写的代码在哪里,您在这样做时遇到了什么具体问题?
  • VBScript 和批处理都不能做你想做的事。

标签: batch-file vbscript


【解决方案1】:

最后我找到了解决方案,特别感谢JosefZ,正如他所说,Powershell 是解决方案,您只需下载并复制Add-font.ps1 by Michael Murgolo 到您的项目文件夹,然后将以下行复制到您的批处理文件中:

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

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

就是这样,你甚至不需要我问题中的代码,祝你好运。

【讨论】:

    猜你喜欢
    • 2015-05-12
    • 2011-01-07
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    相关资源
    最近更新 更多