昨晚被不死帝国问到一个问题: 就是在 “良朋網作品 OEM 設置 V1.43” 中的闪屏里用BMP图片实现了无窗体透明的闪屏效果 见图一
看到图片时候 觉得闪屏能实现这样的效果也不错 就研究了一下 通过提取良朋的图片(偷一下懒了^_^) ,编译后发现竟然没有实现和他一样的效果 .后来在NSIS自带的例子中找了关于闪屏的例子(X:\Program Files\NSIS\Examples\AdvSplash\Example.nsi) 看到里面有一个效果和想要实现的差不多 不过还是没搞懂 (代码一红色处) 因该是图二所示那个位置的代码 ^_^ 我也是菜菜嘛
希望有朋友能指点一下 把良朋有的图片也传上来以供研究 附件
复制内容到剪贴板
代码:
;代码一
File /oname=$PLUGINSDIR\splash.bmp "${NSISDIR}\Contrib\Graphics\Wizard\nsis.bmp"
advsplash::show 1000 600 400 0x04025C $PLUGINSDIR\splash
Pop $0 后来在NSIS网站上找了NewAdvSplash这个插件 通过这个用GIF图片实现了图一的效果 见图三
NewAdvSplash插件下载地址 :
附件已经提供该插件
要使用插件请把插件DLL文件复制到NSIS目录下的Plugins文件夹里(X:\Program Files\NSIS\Plugins)
然后编译以下代码即可
注意在做图片的时候一定要是GIF的图片背景是透明的才能达到效果 而且在脚本中不要使用透明颜色 这样才能实现所要的效果
复制内容到剪贴板
代码:
Name "test"
OutFile "test.exe"
AutoCloseWindow true
!include "MUI.nsh"
!insertmacro MUI_LANGUAGE "English"
Function .onInit
InitPluginsDir
SetOutPath "$PLUGINSDIR"
File "test.gif"
newadvsplash::show /NOUNLOAD 2000 1000 2000 "$PLUGINSDIR\test.gif" ;调用新插件语句
Sleep 2000 ;延迟2秒
MessageBox mb_ok "演示完毕"
FunctionEnd
Section ""
;形式而已
SectionEnd