例子:全幅图片banner

优质
小牛编辑
112浏览
2023-12-01
引用脚本的内容:

Name "Test"
OutFile "Test.exe"
!include "MUI.nsh"
InstallDir $temp
Var pic_count   ;图片序号

!define MUI_UI "UI\modern.exe"  ;换一个修改过的UI
!define MUI_CUSTOMFUNCTION_GUIINIT GUIINIT

!insertmacro MUI_PAGE_WELCOME

;下面两行全部页面都要加。
!define MUI_PAGE_CUSTOMFUNCTION_PRE PRE     ;每页加载前都设置颜色
!define MUI_PAGE_CUSTOMFUNCTION_leave LEAVE ;每页加载后都隐藏上次的控件以刷新屏幕,否则新旧文字会混叠

!insertmacro MUI_PAGE_LICENSE "autoexec.bat"

!define MUI_PAGE_CUSTOMFUNCTION_PRE PRE
!define MUI_PAGE_CUSTOMFUNCTION_leave LEAVE
!insertmacro MUI_PAGE_DIRECTORY

!define MUI_PAGE_CUSTOMFUNCTION_PRE PRE
!define MUI_PAGE_CUSTOMFUNCTION_leave LEAVE
!insertmacro MUI_PAGE_DIRECTORY

!define MUI_PAGE_CUSTOMFUNCTION_PRE PRE
!define MUI_PAGE_CUSTOMFUNCTION_leave LEAVE
!insertmacro MUI_PAGE_DIRECTORY

!define MUI_PAGE_CUSTOMFUNCTION_PRE PRE
!define MUI_PAGE_CUSTOMFUNCTION_leave LEAVE
!insertmacro MUI_PAGE_INSTFILES

!insertmacro MUI_PAGE_FINISH

!insertmacro MUI_LANGUAGE "SimpChinese"

Section
SectionEnd


;—————以下代码插末尾—————

Function PRE
GetDlgItem $0 $HWNDPARENT 1037      ;第1行
SetCtlColors $0 0x0000ff transparent
ShowWindow $0 1
GetDlgItem $0 $HWNDPARENT 1038      ;第2行
SetCtlColors $0 0x0000ff  0x0080FF
ShowWindow $0 1
FunctionEnd

Function LEAVE       ;按下一步按钮时消隐标题字。图片号+1
GetDlgItem $0 $HWNDPARENT 1037
ShowWindow $0 0
GetDlgItem $0 $HWNDPARENT 1038
ShowWindow $0 0
IntOp $pic_count $pic_count + 1
SetBrandingImage /IMGID=1046 /RESIZETOFIT "$PLUGINSDIR\$pic_count.bmp"

FunctionEnd

Function Back       ;按上一步按钮时消隐标题字。图片号-1,如果小于1的话不减了
GetDlgItem $0 $HWNDPARENT 1037
ShowWindow $0 0
GetDlgItem $0 $HWNDPARENT 1038
ShowWindow $0 0
IntCmp $pic_count 1 +2 +2 +1
IntOp $pic_count $pic_count - 1
SetBrandingImage /IMGID=1046 /RESIZETOFIT "$PLUGINSDIR\$pic_count.bmp"
FunctionEnd

Function GUIINIT

GetFunctionAddress $R0 Back
ButtonEvent::AddEventHandler /NOUNLOAD 3 $R0


SetOutPath $PLUGINSDIR  ;释放图片
File "UI\*.bmp"

SetBrandingImage /IMGID=1046 /RESIZETOFIT "$PLUGINSDIR\1.bmp"   ;先出第一张图片

StrCpy $pic_count 1     ;图片序号1
FunctionEnd

另存附件