NSIS安装制作基础教程

NSIS简介:
  NSIS 是“Nullsoft 脚本安装系统”(Nullsoft Scriptable Installation System)的缩写,它是一个免费的 Win32 安装、卸载系统。它的特点:脚本简洁高效;系统开销小;当然进行安装、卸载、设置系统设置、解压文件等等更不在话下,几乎可以做所有的事情。更多的功能请阅读蓝色网际的《NSIS帮助文档》。
  对于制作NSIS的使用教程,蓝色网际是NSIS方面的专家,她的《NSIS帮助文档》就是一本NSIS的圣经,而对初学者来说,最头疼的莫过于一大堆看不懂的代码,对他们来说无异于一本天书。缘于此,特草此基础教程,希望NSIS专家们勿见笑,不当之处欢迎批评指正以期完善,也希望给初学者作个铺垫。

工具:NIS Edit+Nullsoft Installation System(NSIS)

思路:脚本向导+修改代码=个性化安装包

步骤:

  一、利用向导制作安装包

  01、安装上述两款,启动NIS Edit,在“文件”菜单中“新建脚本:向导”→下一步”,如图1。

  02、设置应用程序信息,如软件名称、版本、出版人等,如图2。当然最一个网站可以留空,如果设置了,则安装包会生成一个对应网址的“Internet 快捷方式”。


  03、设置程序选项,如安装包图标、安装程序文件、安装包语言[这里选“SimChinese”]、用户图形界面及压缩方式等,我们可以选用默认值,也可以点击对应项目的按钮或下拉菜单更改设置,如图3。

  04、设置安装目录及授权信息,如图4后“下一步”。

  05、选定程序文件,即我们要打包的文件,可以使用默认的“Mainsection”,也可以根据需要进行更改或新建组别,如果组比较多时,你也可以设置是否“允许用户选择要安装的组件”,如图5。

  完毕后进行“添加文件”操作,选定我们要打包的文件,如图6,完成自动后返回的图5的界面,执行下一步操作。

  06、设置开始菜单中文件夹名称及快捷方式,这里我们使用默认值,如图7,按“下一步”。


  07、指定安装后要运行的程序,同上用默认值并设置相关运行参数及描述,如果你和我一样懒的话,或不想在安装运行任何程序,则留空即可,如图8。


  08、这步是有关卸载程序的相关信息,如卸载时的提示、卸载的图标等,如图9。


  09、至此完成向导,如图10,钩选“保存脚本”、“转换文件路径到相关路径”及“编译脚本”。


  提示保存脚本路径并自动编译脚本,我们可以按或F9运行安装程序进行预览,向导产生的安装包效果图如图11所示。



   二、修改代码以个性化安装包

  10、选择可修改之处。软件LOGO[如图11A]、安装包标题[图11B]、图11C、图12、图13。

  图11见上楼 图12如下


  图13如下


  11、修改代码

  ①、修改软件LOGO:在源代码“ MUI Settings”后面添加下列代码:
程序代码
!define MUI_WELCOMEFINISHPAGE_BITMAP "G:/temp/ pwr.bmp"


  注释:引号内为位图的路径,位图大小大约为165*298

  效果图如图14所示


  ②、修改安装包标题,在同上位置添加下列代码:
程序代码
!define MUI_WELCOMEPAGE_TITLE "/r/n PDF2all 5.35d 汉化版"


  注释:/r/n为换行标志

  效果图上楼如图14所示。

  ③、修改图11C中的说明,同上位置添加下列代码:
程序代码
!define MUI_WELCOMEPAGE_TEXT "  pdf2all是一个转换器的集合,它能转换包括doc2pdf (Word to PDF),xls2pdf (Excel Sheet到PDF),ppt2pdf(PowerPoint到PDF),mdb2pdf (Access到PDF),ps2pdf(PostScript到PDF),pdf2jpg(PDF到JPEG),pdf2bmp(PDF到BMP),pdf2tiff(PDF到TIFF),pdf2eps(PDF到EPS),pdfMerge(合并PDF文件),pdf2ppt(PDF到PowerPoint)。/r/n/r/n  软件汉化:高芳銮 (Raindy)/r/n/r/n  $_CLICK"


  效果图如图14所示。

  ④、对图12中的修改,在源代码:
程序代码
ShowInstDetails show
ShowUnInstDetails show


  后添加:
程序代码
BrandingText " 软件汉化:高芳銮 (Raindy)"


  效果图如图15所示。


  ⑤、在完成添加“汉化说明”,只要在源代码:
程序代码
; Finish page


  后添加:
程序代码
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR/汉化说明.txt"
!define MUI_FINISHPAGE_SHOWREADME_TEXT "汉化说明"


  效果所示


  ⑥、闪屏界面,可以在源代码中加入下列代码即可:

  A、普通效果
程序代码
Function .onInit
SetOutPath $TEMP
File /oname=spltmp.bmp "G:/Temp/Nsisres/splash.bmp"

splash::show 2300 $TEMP/spltmp

Pop $0

FunctionEnd


  B、渐隐闪屏
程序代码
Function .OnInit
InitPluginsDir
File /oname=$PLUGINSDIR/splash.bmp "G:/Temp/Nsisres/splash.bmp"
advsplash::show 1500 800 600 -1 $PLUGINSDIR/splash
Functionend


  ⑦、背景音乐[贯穿安装过程]
程序代码
Var hmci
Function .OnInit
InitPluginsDir
SetOutPath $PLUGINSDIR
File "G:/Temp/Nsisres/music.mp3"  [说明:源MP3的存放路径]
System::Call msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$PLUGINSDIR/music.mp3") i .r0
SendMessage $0 0x0465 0 "STR:play repeat"
System::Call user32.dll::ShowWindow(i r0, i 0)
StrCpy $hmci $0
Functionend

Section
;add your codes
SendMessage $hmci 0x0010 0 0
Sectionend



   后语:

  以上仅是NSIS制作安装包最基本的操作,供初学者入门之用,故云“初级篇”。希望不会怡笑大方,更希望蓝MM、陈敏毅老大等NSIS高手的中高级教程。




   精品代码 (^-^)

   1、闪屏效果(渐现渐隐)
程序代码
Function .OnInit
InitPluginsDir
File /oname=$PLUGINSDIR/splash.bmp c:/test.bmp
advsplash::show 1500 800 600 -1 $PLUGINSDIR/splash
Functionend



   2、背景音乐1(贯穿安装全过程)
程序代码
Function .OnInit
InitPluginsDir
SetOutPath $PLUGINSDIR
File "c:/a.mp3"
System::Call msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$PLUGINSDIR/a.mp3") i .r0
SendMessage $0 0x0465 0 "STR:play repeat"
System::Call user32.dll::ShowWindow(i r0, i 0)
StrCpy $hmci $0
Functionend

Section
;add your codes
SendMessage $hmci 0x0010 0 0
Sectionend



   3、背景音乐2
程序代码
Section/Function
SetOutPath $PLUGINSDIR
File $WINDIR/MEDIA/chimes.wav
BgImage::Sound /NOUNLOAD /WAIT "$PLUGINSDIR/chimes.wav"
BgImage::Clear /NOUNLOAD
Sectionend/Functionend



   4、闪屏效果[渐隐]+背景音乐[全程]
程序代码
outfile test.exe
Var hmci

Function .OnInit
InitPluginsDir
SetOutPath $PLUGINSDIR
File "c:/a.mp3"
System::Call msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$PLUGINSDIR/a.mp3") i .r0
SendMessage $0 0x0465 0 "STR:play repeat"
System::Call user32.dll::ShowWindow(i r0, i 0)
StrCpy $hmci $0

File /oname=$PLUGINSDIR/splash.bmp c:/test.bmp
advsplash::show 1500 800 600 -1 $PLUGINSDIR/splash

Functionend

Section
;add your codes
sleep 5000
SendMessage $hmci 0x0010 0 0
Sectionend



   5、如何把安装页面中的“Setup将安装……”中的Setup改成别的字

  只需在
程序代码
!insertmacro MUI_PAGE_DIRECTORY


  前面添加一行
程序代码
!define MUI_DIRECTORYPAGE_TEXT_TOP "你需要的文字"



   6、设置了自定义安装、卸载图标
程序代码
!define MUI_ICON "G:/Temp/Nsisres/Win 安装.ico"
!define MUI_UNICON "G:/Temp/Nsisres/Win 卸载.ico"
NSIS安装制作教程 分为三个目录:基础,插件,脚本 NSIS System 插件 NSIS VPatch 3.1插件 NSIS InstallOptions 2 插件 NSIS Modern UI(新式用户界面)插件 NSIS的Modern UI插件 NSIS里特殊符号的表达方法 两组件互斥 NSIS 常用小问题合集 资源替换式的美化包制作方式代码 安装完毕后如何刷新文件关联 教你如何编程调用 NSIS 的插件 NSIS安装程序概要 实现 NSIS 自定义页面中的控件操作代码 如何使用NSIS实现多目录安装设置 如何用NSIS在加入注册表 用NSIS 制作自己的安装程序 bluewind 的 wmp9 nsis安装脚本 NSIS安装脚本简明教程 取得winamp的NSIS脚本的教程 迅雷5.7.3.389 AYU增强版的安装脚本 NSIS制作迅雷安装脚本 迅雷5.7.2.371 DDR1.5版去广告版源代码说明 NSIS删除安装程序自身 帮助文件中关于静默安装的说明 NSIS实现静默安装的两种方法 nsis的附加任务代码 关于 NSIS 写入注册表的问题 少轻狂制作的Windows优化大师的安装脚本 aipc编写的nsis极点安装脚本 官方 NSIS 插件全集 全方位掌握NSIS的使用 NSIS语言里怎样安装一个.inf文件? 如果要关联某个文件给程序应该怎么做? 如何避免显示解压缩进度框? 关于检测操作系统的问题 在结束页面添加运行程序选项 NSIS的botton二选一如何实现? NSIS灵活应用用逻辑库 NSIS调用inf安装驱动后的卸载问题 NSIS的组件互斥代码 在NSIS中如何禁止一个组件组的父项的点击事件 关于打破 NSIS 的 8192 字节限制的更简单方法 NSIS 自定义页面结合组件选择安装 一个关于组件跟自定义页面的控制问题 如何把安装的卸载程序放到其他目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值