如何使用NSIS安装字体?

时间:2014-10-17 00:01:26

标签: fonts nsis

我一直在尝试在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并逐字复制了这些文件。然而......当我运行这个脚本时,字体没有安装。我错过了什么?

1 个答案:

答案 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