Код, который вы опубликовали, не может извлечь test.gif!
Кроме того, использование Sleep
на странице, как правило, не очень хорошая идея, поскольку блокирует пользовательский интерфейс.
ВоспроизвестиGIF поверх элемента управления растровым изображением:
!include "MUI2.nsh"
!include nsDialogs.nsh
!include LogicLib.nsh
!insertmacro MUI_PAGE_WELCOME
Page custom nsDialogsPageEnter
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE English
Function beginanimfunc
${NSD_KillTimer} ${__FUNCTION__}
${NSD_SetImage} $0 "$pluginsdir\img.bmp" $1
AnimGif::play /NOUNLOAD /HALIGN=0 /VALIGN=0 /HWND=$0 /BGCOL=0x0000ff "$PLUGINSDIR\anim.gif"
${NSD_CreateTimer} stopanimfunc 2000
FunctionEnd
!include WinMessages.nsh
Function stopanimfunc
${NSD_KillTimer} ${__FUNCTION__}
AnimGif::stop
SendMessage $hWndParent ${WM_COMMAND} 1 "" ; Click next button
FunctionEnd
Function nsDialogsPageEnter
nsDialogs::Create 1018
Pop $0
StrCpy $1 ""
${NSD_CreateBitmap} 30% 30% 80% 80% ""
Pop $0
File "/oname=$pluginsdir\img.bmp" "${NSISDIR}\Contrib\Graphics\Wizard\arrow.bmp"
File "/oname=$pluginsdir\anim.gif" "C:\myfiles\myanim.gif"
${NSD_CreateTimer} beginanimfunc 1
nsDialogs::Show
${NSD_FreeImage} $1
FunctionEnd
Воспроизведение GIF в всплывающем всплывающем окне:
!include "MUI2.nsh"
!include nsDialogs.nsh
!include LogicLib.nsh
!insertmacro MUI_PAGE_WELCOME
Page custom nsDialogsPageEnter
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE English
!include WinMessages.nsh
Function stopanimfunc
${NSD_KillTimer} ${__FUNCTION__}
newadvsplash::stop /FADEOUT
AnimGif::stop
SendMessage $hWndParent ${WM_COMMAND} 1 "" ; Click next button
FunctionEnd
Function nsDialogsPageEnter
nsDialogs::Create 1018
Pop $0
StrCpy $1 ""
${NSD_CreateBitmap} 30% 30% 80% 80% ""
Pop $0
File "/oname=$pluginsdir\img.bmp" "${NSISDIR}\Contrib\Graphics\Wizard\arrow.bmp"
${NSD_SetImage} $0 "$pluginsdir\img.bmp" $1
File "/oname=$pluginsdir\anim.gif" "C:\myfiles\myanim.gif"
newadvsplash::show /NOUNLOAD 1200 250 0 -1 /BANNER /NOCANCEL /PASSIVE "" ; <- you can put a bitmap here also
newadvsplash::hwnd /NOUNLOAD
Pop $0
AnimGif::play /NOUNLOAD /HALIGN=0 /VALIGN=0 /HWND=$0 /BGCOL=0x0000ff "$PLUGINSDIR\anim.gif"
${NSD_CreateTimer} stopanimfunc 2000
nsDialogs::Show
${NSD_FreeImage} $1
FunctionEnd