NSIS 字体安装

 安装新字体

网上流传的方法是

复制内容到剪贴板

代码:

!include WinMessages.nsh
Section "FONTS" SEC01
File /oname=$FONTS\tahoma.ttf tahoma.ttf ;tahoma.ttf 为字体安装文件
Push "$FONTS\tahoma.ttf"
System::Call "Gdi32::AddFontResource(t s) i .s"
Pop $0
IntCmp $0 0 0 +2 +2
MessageBox MB_OK "注册字体失败"
SendMessage ${HWND_BROADcast} ${WM_FONTCHANGE} 0 0
SectionEnd
 
或者如下:
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" "Lucida Grande (TrueType)" "Lucida Grande.ttf"
System::Call "GDI32::AddFontResource(t) i ('Lucida Grande.ttf') .s"
方法三:
 ;安装字体……
  SetOutPath "$INSTDIR"
  File  "Fonts\FZZY_GBK.TTF"
  Call InstallFont
SectionEnd

;----------------------------------------------------------------------------------

Section Uninstall
  ;删除字体
   Push "$FONTS\FZY3FW.TTF"
   System::Call "Gdi32::RemoveFontResource(t s) i .s"
   Pop $0
   IntCmp $0 0 0 +2 +2
   DetailPrint "删除繁体字体失败"
   SendMessage ${HWND_BROADcast} ${WM_FONTCHANGE} 0 0
   Push "$FONTS\FZZY_GBK.TTF"
   System::Call "Gdi32::RemoveFontResource(t s) i .s"
   Pop $0
   IntCmp $0 0 0 +2 +2
   DetailPrint "删除简体字体失败"
   SendMessage ${HWND_BROADcast} ${WM_FONTCHANGE} 0 0
  Delete "$FONTS\FZZY_GBK.TTF"
  Delete "$FONTS\FZY3FW.TTF"
  
  Delete "$INSTDIR\FZZY_GBK.TTF"
  Delete "$INSTDIR\FZY3FW.TTF"
SectionEnd


;----------------------------------------------------------------------------------


;用于安装字体
Function InstallFont
  DetailPrint "正在安装字体……"
  ;检查字体是否存在。
  IfFileExists $FONTS\FZZY_GBK.TTF lb_fontend
  ; MessageBox MB_RETRYCANCEL|MB_ICONQUESTION "字体已存在。请删除系统中的方正准圆_GBK字体 后点重试,或者点取消以后手动安装。" IDRETRY lb_jtfont IDCANCEL lb_jtfontend
;lb_font:
    CopyFiles $INSTDIR\FZZY_GBK.TTF $FONTS\FZZY_GBK.TTF
    Push "$FONTS\FZZY_GBK.TTF"
        System::Call "Gdi32::AddFontResource(t s) i .s"
        Pop $0
        IntCmp $0 0 0 +2 +2
        MessageBox MB_OK "注册字体失败"
        SendMessage ${HWND_BROADcast} ${WM_FONTCHANGE} 0 0
        return
lb_fontend:
        Detailprint "字体已经存在,跳过……"
        return
FunctionEnd

!include functions.nsh
 
安装硬盘上的字体(代码插入Function,Section内):
StrCpy $0 "D:\Fonts\Chs\经典空趣体繁.ttf"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" "经典空趣体繁(TrueType)" "$0"
System::Call "GDI32::AddFontResource(t) i ('$0') .s"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值