安装新字体网上流传的方法是
复制内容到剪贴板
代码:
!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"
来自:http://dreams8.com/thread-3651-1-2.html
方法三:
;安装字体…… 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
来自:http://dreams8.com/thread-3956-1-4.html
安装硬盘上的字体(代码插入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"