我一直在尝试在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
我收到文件FontReg.nsh from here并将其逐字复制到我的Program Files\NSIS\Include
文件夹中。我得到了文件FontName.nsh(以及相应的DLL文件)from here并逐字复制了这些文件。然而......当我运行这个脚本时,字体没有安装。我错过了什么?
答案 0 :(得分:3)
FontReg.nsh
定义了正确的变量以获取字体安装目录,同时您定义的常量的名称与您认为的不同,您也可以直接使用指向系统字体目录的$FONTS
变量WM_FONTCHANGE
消息的广播向系统发出添加新字体的信号请尝试以下操作:删除!define FONT_DIR
行并使用
StrCpy $FONT_DIR $FONTS
!insertmacro InstallTTFFont "orangejuice.ttf"
SendMessage ${HWND_BROADCAST} ${WM_FONTCHANGE} 0 0 /TIMEOUT=5000