脚本:按下自定义页面上的不同按钮显示不同的自定义页面
优质
小牛编辑
134浏览
2023-12-01
引用EAVSet.nsi的内容:
!define PRODUCT_NAME "ESET NOD32 Antivirus" SetCompressor /SOLID lzma SetCompressorDictSize 32 !include "MUI.nsh" !include "UsefulLib.nsh" !define MUI_ABORTWARNING !define MUI_ICON "EAV.ico" !define MUI_HEADERIMAGE !define MUI_HEADERIMAGE_BITMAP "header.bmp" !define MUI_HEADERIMAGE_RIGHT page custom io1 leave page custom io2 !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_LANGUAGE "SimpChinese" !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ReserveFile "io1.ini" ReserveFile "header.bmp" ReserveFile "io2.ini" ReserveFile "repair.ico" ReserveFile "remove.ico" Name "${PRODUCT_NAME}" OutFile "EAVSet.exe" InstallDir "$EXEDIR" SetFont "Tahoma" 8 BrandingText "$\r" Var Check Section StrCmp $Check "fix" 0 +2 Call inst StrCmp $Check "del" 0 +2 Call uninst SectionEnd Function .onInit ;IfFileExists "$EXEDIR\egui.exe" +3 ; MessageBox MB_OK|MB_ICONEXCLAMATION "请把本程序放在 ${PRODUCT_NAME} 安装目录下运行!" ; Quit !insertmacro MUI_INSTALLOPTIONS_EXTRACT "io1.ini" !insertmacro MUI_INSTALLOPTIONS_EXTRACT "io2.ini" !insertmacro MUI_INSTALLOPTIONS_EXTRACT "repair.ico" !insertmacro MUI_INSTALLOPTIONS_EXTRACT "remove.ico" !insertmacro MUI_INSTALLOPTIONS_WRITE "io1.ini" "Field 1" "Text" "$PLUGINSDIR\repair.ico" !insertmacro MUI_INSTALLOPTIONS_WRITE "io1.ini" "Field 3" "Text" "$PLUGINSDIR\remove.ico" FunctionEnd Function io1 Push $R1 Push $R2 GetDlgItem $R1 $HWNDPARENT 1 EnableWindow $R1 0 !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "io1.ini" !insertmacro MUI_INSTALLOPTIONS_READ $R1 "io1.ini" "Field 2" "HWND" SendMessage $R1 ${WM_SETFOCUS} 0 0 ;设置焦点 SendMessage $R1 ${BN_SETFOCUS} 1 0 ;通知已设置焦点 SendMessage $R1 ${BM_SETSTYLE} 0x00000001 0x1 !insertmacro MUI_INSTALLOPTIONS_READ $R1 "io1.ini" "Field 5" "HWND" CreateFont $R2 "$(^Font)" "$(^FontSize)" "700" SendMessage $R1 ${WM_SETFONT} $R2 0 !insertmacro MUI_INSTALLOPTIONS_READ $R1 "io1.ini" "Field 7" "HWND" SendMessage $R1 ${WM_SETFONT} $R2 0 !insertmacro MUI_HEADER_TEXT "修改、修复或删除安装" "选择您想执行的操作。" !insertmacro MUI_INSTALLOPTIONS_SHOW Pop $R2 Pop $R1 FunctionEnd Function leave !insertmacro MUI_INSTALLOPTIONS_READ $0 "io1.ini" "Settings" "State" ${Switch} $0 ${Default} Abort ${Case} 2 StrCpy $Check "fix" !insertmacro MUI_INSTALLOPTIONS_WRITE "io2.ini" "Field 1" "Text" "单击“修复”来修复 ESET NOD32 Antivirus的安装。如果您想复查或更改您的安装设置,请单击“上一步”。单击“取消”可退出向导。" ${Break} ${Case} 4 StrCpy $Check "del" !insertmacro MUI_INSTALLOPTIONS_WRITE "io2.ini" "Field 1" "Text" "单击“删除”来从您的计算机删除 ESET NOD32 Antivirus。如果您想复查或更改您的安装设置,请单击“上一步”。单击“取消”可退出向导。" ${EndSwitch} FunctionEnd !macro MY_INSTALLOPTIONS str ht1 ht2 !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "io2.ini" GetDlgItem $R1 $HWNDPARENT 1 SendMessage $R1 ${WM_SETTEXT} 0 "STR:${str}" !insertmacro MUI_HEADER_TEXT "${ht1}" "${ht2}" !insertmacro MUI_INSTALLOPTIONS_SHOW !macroend Function io2 GetDlgItem $R1 $HWNDPARENT 1 ShowWindow $R1 ${SW_SHOW} StrCmp $Check "fix" 0 +2 !insertmacro MY_INSTALLOPTIONS "修复(&R)" "修复 ESET NOD32 Antivirus" "安装向导准备开始修复 ESET NOD32 Antivirus。" StrCmp $Check "del" 0 +2 !insertmacro MY_INSTALLOPTIONS "删除(&R)" "删除 ESET NOD32 Antivirus" "您已选择从您的计算机删除程序。" FunctionEnd Function inst ;在这里放上绿化的代码 ;.................... HideWindow MessageBox MB_OK|MB_ICONINFORMATION "${PRODUCT_NAME} 已修复成功!" Quit FunctionEnd Function uninst ;在这里放上卸载的代码 ;.................... HideWindow MessageBox MB_YESNO|MB_TOPMOST|MB_ICONQUESTION "必须重启计算机才能完成卸载,是否立即重启计算机?" IDNO +2 Reboot Quit FunctionEnd
点击另存资源文件。