我一直在尝试在 NSIS 中构建一个安装程序来安装字体文件。这是我的主要安装程序脚本:
!include FontName.nsh
!include FontReg.nsh
!include WinMessages.nsh
RequestExecutionLevel admin
InstallDir $DESKTOP
Name "Orange Juice"
OutFile fonttest.exe
Section "install"
StrCpy $FONT_DIR $FONTS
!insertmacro InstallTTFFont "orangejuice.ttf"
DetailPrint "Installing Orange Juice Font..."
SendMessage ${HWND_BROADCAST} ${WM_FONTCHANGE} 0 0 /TIMEOUT=5000
SectionEnd
Run Code Online (Sandbox Code Playgroud)
我从这里获取了文件 FontReg.nsh并将其逐字复制到我的Program Files\NSIS\Include文件夹中。我从这里获取了文件 FontName.nsh(以及相应的 DLL 文件)并逐字复制了这些文件。然而......当我运行这个脚本时,字体没有安装。我缺少什么?
FontReg.nsh适当的变量来获取字体安装目录,也可以直接使用指向系统字体目录的变量$FONTSWM_FONTCHANGE您需要通过消息广播向系统发出添加新字体的信号尝试以下操作:删除您的!define FONT_DIR行并更改您的部分
StrCpy $FONT_DIR $FONTS
!insertmacro InstallTTFFont "orangejuice.ttf"
SendMessage ${HWND_BROADCAST} ${WM_FONTCHANGE} 0 0 /TIMEOUT=5000
Run Code Online (Sandbox Code Playgroud)