NSIS全幅图片banner示例

Name "Test"
OutFile "Test.exe"
!include "MUI.nsh"
InstallDir $temp
Var pic_count ;图片序号
!define MUI_UI "UImodern.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 c: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 "$PLUGINSDIR1.bmp" ;先出第一张图片
StrCpy $pic_count 1 ;图片序号1
FunctionEnd
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容