147 lines
5.4 KiB
NSIS
147 lines
5.4 KiB
NSIS
!ifdef FONT_PACK_COMPANION_FILE
|
|
!ifndef BUILD_UNINSTALLER
|
|
!include "FileFunc.nsh"
|
|
!include "nsDialogs.nsh"
|
|
|
|
Var fontPackCompanionAvailable
|
|
Var fontPackCompanionCheckbox
|
|
Var fontPackCompanionExitCode
|
|
Var fontPackCompanionHash
|
|
Var fontPackCompanionPath
|
|
Var fontPackCompanionSelected
|
|
|
|
!macro customInit
|
|
StrCpy $fontPackCompanionAvailable "0"
|
|
StrCpy $fontPackCompanionSelected "0"
|
|
StrCpy $fontPackCompanionPath "$EXEDIR\${FONT_PACK_COMPANION_FILE}"
|
|
IfFileExists "$fontPackCompanionPath" 0 font_pack_init_done
|
|
${StdUtils.HashFile} $fontPackCompanionHash "SHA2-256" "$fontPackCompanionPath"
|
|
StrCmp $fontPackCompanionHash "${FONT_PACK_COMPANION_SHA256}" 0 font_pack_init_done
|
|
StrCpy $fontPackCompanionAvailable "1"
|
|
IfSilent font_pack_silent font_pack_interactive
|
|
font_pack_interactive:
|
|
StrCpy $fontPackCompanionSelected "1"
|
|
Goto font_pack_init_done
|
|
font_pack_silent:
|
|
${GetParameters} $R0
|
|
${GetOptions} $R0 "/WITHFONTPACK=" $R1
|
|
StrCmp $R1 "1" 0 font_pack_init_done
|
|
StrCpy $fontPackCompanionSelected "1"
|
|
font_pack_init_done:
|
|
!macroend
|
|
|
|
Function FontPackCompanionPage
|
|
StrCmp $fontPackCompanionAvailable "1" 0 font_pack_page_skip
|
|
nsDialogs::Create 1018
|
|
Pop $R0
|
|
StrCmp $R0 "error" 0 +2
|
|
Abort
|
|
${NSD_CreateLabel} 0 0 100% 28u "检测到经过完整性校验的可选字体包。安装后,政企公文主题可使用与 PDF 相同的原生中文字体资产。"
|
|
Pop $R0
|
|
${NSD_CreateCheckbox} 0 38u 100% 14u "安装 ${FONT_PACK_COMPANION_NAME}"
|
|
Pop $fontPackCompanionCheckbox
|
|
${NSD_Check} $fontPackCompanionCheckbox
|
|
nsDialogs::Show
|
|
Return
|
|
font_pack_page_skip:
|
|
Abort
|
|
FunctionEnd
|
|
|
|
Function FontPackCompanionPageLeave
|
|
${NSD_GetState} $fontPackCompanionCheckbox $R0
|
|
StrCmp $R0 ${BST_CHECKED} 0 font_pack_page_unchecked
|
|
StrCpy $fontPackCompanionSelected "1"
|
|
Return
|
|
font_pack_page_unchecked:
|
|
StrCpy $fontPackCompanionSelected "0"
|
|
FunctionEnd
|
|
|
|
!macro customPageAfterChangeDir
|
|
Page custom FontPackCompanionPage FontPackCompanionPageLeave
|
|
!macroend
|
|
!endif
|
|
!endif
|
|
|
|
!macro customInstall
|
|
WriteRegStr SHCTX \
|
|
"Software\Classes\MarkdownPdfExporter.Markdown" \
|
|
"" \
|
|
"Markdown 文档"
|
|
WriteRegStr SHCTX \
|
|
"Software\Classes\MarkdownPdfExporter.Markdown\DefaultIcon" \
|
|
"" \
|
|
'"$INSTDIR\md-to-pdf.exe",0'
|
|
WriteRegStr SHCTX \
|
|
"Software\Classes\MarkdownPdfExporter.Markdown\shell\open\command" \
|
|
"" \
|
|
'"$INSTDIR\md-to-pdf.exe" "%1"'
|
|
WriteRegStr SHCTX \
|
|
"Software\Classes\.md\OpenWithProgids" \
|
|
"MarkdownPdfExporter.Markdown" \
|
|
""
|
|
WriteRegStr SHCTX \
|
|
"Software\Classes\.markdown\OpenWithProgids" \
|
|
"MarkdownPdfExporter.Markdown" \
|
|
""
|
|
WriteRegStr SHCTX \
|
|
"Software\Classes\Applications\md-to-pdf.exe\shell\open\command" \
|
|
"" \
|
|
'"$INSTDIR\md-to-pdf.exe" "%1"'
|
|
WriteRegStr SHCTX \
|
|
"Software\Classes\Applications\md-to-pdf.exe\SupportedTypes" \
|
|
".md" \
|
|
""
|
|
WriteRegStr SHCTX \
|
|
"Software\Classes\Applications\md-to-pdf.exe\SupportedTypes" \
|
|
".markdown" \
|
|
""
|
|
CreateDirectory "$SMPROGRAMS\Markdown PDF 导出器"
|
|
CreateShortCut \
|
|
"$SMPROGRAMS\Markdown PDF 导出器\Markdown PDF 导出器.lnk" \
|
|
"$INSTDIR\md-to-pdf.exe" \
|
|
"" \
|
|
"$INSTDIR\md-to-pdf.exe"
|
|
CreateShortCut \
|
|
"$DESKTOP\Markdown PDF 导出器.lnk" \
|
|
"$INSTDIR\md-to-pdf.exe" \
|
|
"" \
|
|
"$INSTDIR\md-to-pdf.exe"
|
|
StrCpy $launchLink "$INSTDIR\md-to-pdf.exe"
|
|
!ifdef FONT_PACK_COMPANION_FILE
|
|
StrCmp $fontPackCompanionAvailable "1" 0 font_pack_install_done
|
|
StrCmp $fontPackCompanionSelected "1" 0 font_pack_install_done
|
|
${StdUtils.HashFile} $fontPackCompanionHash "SHA2-256" "$fontPackCompanionPath"
|
|
StrCmp $fontPackCompanionHash "${FONT_PACK_COMPANION_SHA256}" 0 font_pack_integrity_failed
|
|
DetailPrint "正在安装可选字体包:${FONT_PACK_COMPANION_NAME}"
|
|
ExecWait '"$fontPackCompanionPath" /S' $fontPackCompanionExitCode
|
|
StrCmp $fontPackCompanionExitCode "0" font_pack_install_done
|
|
DetailPrint "可选字体包安装失败,退出码:$fontPackCompanionExitCode"
|
|
IfSilent font_pack_install_done 0
|
|
MessageBox MB_ICONEXCLAMATION|MB_OK "主程序已安装,但可选字体包安装失败(退出码 $fontPackCompanionExitCode)。您可以稍后单独运行字体包安装器。"
|
|
Goto font_pack_install_done
|
|
font_pack_integrity_failed:
|
|
DetailPrint "可选字体包完整性复核失败,已跳过安装。"
|
|
IfSilent font_pack_install_done 0
|
|
MessageBox MB_ICONEXCLAMATION|MB_OK "可选字体包完整性复核失败,主程序已安装,但字体包已跳过。"
|
|
font_pack_install_done:
|
|
!endif
|
|
System::Call 'shell32::SHChangeNotify(i 0x08000000, i 0, i 0, i 0)'
|
|
!macroend
|
|
|
|
!macro customUnInstall
|
|
DeleteRegValue SHCTX \
|
|
"Software\Classes\.md\OpenWithProgids" \
|
|
"MarkdownPdfExporter.Markdown"
|
|
DeleteRegValue SHCTX \
|
|
"Software\Classes\.markdown\OpenWithProgids" \
|
|
"MarkdownPdfExporter.Markdown"
|
|
DeleteRegKey SHCTX \
|
|
"Software\Classes\Applications\md-to-pdf.exe"
|
|
DeleteRegKey SHCTX \
|
|
"Software\Classes\MarkdownPdfExporter.Markdown"
|
|
Delete "$SMPROGRAMS\Markdown PDF 导出器\Markdown PDF 导出器.lnk"
|
|
RMDir "$SMPROGRAMS\Markdown PDF 导出器"
|
|
Delete "$DESKTOP\Markdown PDF 导出器.lnk"
|
|
System::Call 'shell32::SHChangeNotify(i 0x08000000, i 0, i 0, i 0)'
|
|
!macroend
|