Project1

标题: Nullsoft 脚本安装系统 [打印本页]

作者: chg1998    时间: 2011-6-26 16:35
标题: Nullsoft 脚本安装系统
本帖最后由 chg1998 于 2012-1-15 21:00 编辑

       简介  NSIS 是“Nullsoft 脚本安装系统”(Nullsoft Scriptable Installation System)的缩写,它是一个免费的 Win32 安装、卸载系统。它的特点:脚本简洁高效;系统开销小;当然进行安装、卸载、设置系统设置、解压文件等等更不在话下,几乎可以做所有的事情。更多的功能请阅读蓝色网际的《NSIS用户手册》。

  对于制作NSIS的使用教程,蓝色网际是NSIS方面的专家,她的《NSIS用户手册》就是一本NSIS的圣经,而对初学者来说,最头疼的莫过于一大堆看不懂的代码,对他们来说无异于一本天书。缘于此,特草此基础教程,希望NSIS专家们勿见笑,不当之处欢迎批评指正以期完善,也希望给初学者作个铺垫。

  工具
  HM VNISEdit+NSIS,推荐使用蓝色网际制作的NSISv2.11简体中文增强版。
    附件:http://u.115.com/file/bhb7qpib#
  思路

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

  步骤
  一、利用向导制作安装包
    点击编译器的脚本编辑器在继续:  01、安装NSISv2.11简体中文增强版便已包含上述两款软件。安装完成后启动HM VNISEdit,选择“文件”菜单中“新建脚本:向导”,如图:



  02、在弹出的“NSIS脚本向导”对话框中单击“下一步”按钮,如图:



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



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



  05、设置是否使用“闪屏”和“音乐”效果,如图:



  06、设置应用程序默认安装目录及授权信息,授权文件建议使用.txt或。rtf格式。如图:



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



  完毕后进行“添加文件”操作,选定我们要打包的文件,如图:



  全部添加完成后返回下图界面,执行下一步操作。



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



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



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



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



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



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

  10、修改软件LOGO:

  在源代码
  1. ; MUI 预定义常量
  2. !define MUI_ABORTWARNING
  3. !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\orange-install.ico"
  4. !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall.ico"
复制代码
  
    下面添加下列代码:
  1. !define MUI_WELCOMEFINISHPAGE_BITMAP "E:\其他\我的文档\轻狂程序\flibpoto\flibpoto.bmp"
复制代码
  
    注释:引号内为位图的路径,位图大小大约为165*298

  效果如图:



  11、修改安装包标题:

  接着在上面的位置下面添加如下代码:
  1. !define MUI_WELCOMEPAGE_TITLE "\r\n   轻狂图片浏览器v1.0安装向导"
复制代码
  注释:\r\n为换行标志

  效果如图:



  12、修改软件说明,接着在上面的位置下面添加如下代码:
  1. !define MUI_WELCOMEPAGE_TEXT "  轻狂图片浏览器是少轻狂开发的一个图片浏览编辑软件,能够方便地查看并编辑图片文件。\r\n\r\n  软件作者:少轻狂\r\n\r\n  官方网址:www.flighty.cn\r\n\r\n  $_CLICK" 
复制代码
 
    效果如图:




  13、在源代码:
  1. ShowInstDetails show
  2. ShowUnInstDetails show
复制代码
  后添加:
  1. BrandingText " 轻狂编程资源网 [url]www.flighty.cn[/url]"
复制代码
  效果如图:



  14、在完成页面添加“安装说明”:

  只要在源代码:
  1. ; MUI 预定义常量
复制代码
  下面添加:
  1. !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\安装说明.txt"
  2. !define MUI_FINISHPAGE_SHOWREADME_TEXT "查看 安装说明"
复制代码
  效果如图:



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

  A、普通效果
  1. Function .onInit
  2. SetOutPath $TEMP
  3. File /oname=spltmp.bmp "G:\Temp\Nsisres\splash.bmp"

  4. splash::show 2300 $TEMP\spltmp

  5. Pop $0

  6. FunctionEnd
复制代码
  
B、渐隐闪屏
  1. Function .OnInit
  2. InitPluginsDir
  3. File /oname=$PLUGINSDIR\splash.bmp "G:\Temp\Nsisres\splash.bmp"
  4. advsplash::show 1500 800 600 -1 $PLUGINSDIR\splash
  5. Functionend
复制代码
  
16、背景音乐[贯穿安装过程]
  1. Var hmci
  2. Function .OnInit
  3. InitPluginsDir
  4. SetOutPath $PLUGINSDIR
  5. File "G:\Temp\Nsisres\music.mp3"  [说明:源MP3的存放路径]
  6. System::Call msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$PLUGINSDIR\music.mp3") i .r0
  7. SendMessage $0 0x0465 0 "STR:play repeat"
  8. System::Call user32.dll::ShowWindow(i r0, i 0)
  9. StrCpy $hmci $0
  10. Functionend

  11. Section
  12. ;add your codes
  13. SendMessage $hmci 0x0010 0 0
  14. Sectionend
复制代码
  
  后语
  以上仅是NSIS制作安装包最基本的操作,供初学者入门之用,故云“初级篇”。希望不会怡笑大方,更希望蓝MM、陈敏毅老大等NSIS高手的中高级教程。

  附录

  仅一些精品代码。

  1、闪屏效果(渐现渐隐)
  1. Function .OnInit
  2. InitPluginsDir
  3. File /oname=$PLUGINSDIR\splash.bmp c:\test.bmp
  4. advsplash::show 1500 800 600 -1 $PLUGINSDIR\splash
  5. Functionend
复制代码
  
2、背景音乐1(贯穿安装全过程)
  1. Function .OnInit
  2. InitPluginsDir
  3. SetOutPath $PLUGINSDIR
  4. File "c:\a.mp3"
  5. System::Call msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$PLUGINSDIR\a.mp3") i .r0
  6. SendMessage $0 0x0465 0 "STR:play repeat"
  7. System::Call user32.dll::ShowWindow(i r0, i 0)
  8. StrCpy $hmci $0
  9. Functionend

  10. Section
  11. ;add your codes
  12. SendMessage $hmci 0x0010 0 0
  13. Sectionend
复制代码
  
3、背景音乐2
  1. Section/Function
  2. SetOutPath $PLUGINSDIR
  3. File $WINDIR\MEDIA\chimes.wav
  4. BgImage::Sound /NOUNLOAD /WAIT "$PLUGINSDIR\chimes.wav"
  5. BgImage::Clear /NOUNLOAD
  6. Sectionend/Functionend
复制代码
  
4、闪屏效果[渐隐]+背景音乐[全程]
  1. outfile test.exe
  2. Var hmci

  3. Function .OnInit
  4. InitPluginsDir
  5. SetOutPath $PLUGINSDIR
  6. File "c:\a.mp3"
  7. System::Call msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$PLUGINSDIR\a.mp3") i .r0
  8. SendMessage $0 0x0465 0 "STR:play repeat"
  9. System::Call user32.dll::ShowWindow(i r0, i 0)
  10. StrCpy $hmci $0

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

  13. Functionend

  14. Section
  15. ;add your codes
  16. sleep 5000
  17. SendMessage $hmci 0x0010 0 0
  18. Sectionend
复制代码
  
5、如何把安装页面中的“Setup将安装……”中的Setup改成别的字

  只需在
  1. !insertmacro MUI_PAGE_DIRECTORY
复制代码
  前面添加一行
  1. !define MUI_DIRECTORYPAGE_TEXT_TOP "你需要的文字"
复制代码
  6、设置了自定义安装、卸载图标
  1. !define MUI_ICON "G:\Temp\Nsisres\Win 安装.ico"
  2. !define MUI_UNICON "G:\Temp\Nsisres\Win 卸载.ico"
复制代码
 

  你可以点击此处下载轻狂图片浏览器打包资源文件。

 

    备注:此教程由少轻狂收集于网络并添加修改了部分内容制作成CHM文档,以便于网络分发。如果您有更好的意见或建议,请与少轻狂联系:www.flighty.cn      [email protected]

    又注:此文原作者  高芳銮 (raindy)




另见其他教程:http://u.115.com/file/e60nd4ji#




本文件为转载   我也不懂只是感到有趣 好玩才转上来的。
作者: 漫漫人生路    时间: 2011-6-26 17:33
貌似看起来很不错啊.......比MoleBox Pro打包文件多了很多方便的东西........
作者: 乏味—    时间: 2011-6-26 17:46
楼主成功过吗?
作者: chg1998    时间: 2011-6-26 18:01
乏味— 发表于 2011-6-26 17:46
楼主成功过吗?

成功过啊!不成功敢发吗?那个就是试了个简单的,加图的还没那!
作者: 乏味—    时间: 2011-6-26 18:06
这啥毛病?


乏味—于2011-6-26 18:19补充以下内容:
哈?怎么?


乏味—于2011-6-26 18:20补充以下内容:
[attachimg]61166[/attachimg]这个?

QQ截图未命名.png (29.9 KB, 下载次数: 32)

QQ截图未命名.png

作者: chg1998    时间: 2011-6-26 18:38
乏味— 发表于 2011-6-26 18:06
这啥毛病?

看见了,点击编译器的第二个脚本编辑器!!!
作者: 仲秋启明    时间: 2011-6-26 19:16
这个MS发到地球村更合适些,不过我学到了
作者: 秒速340    时间: 2011-6-26 22:01
好像很厉害的样子,有空试试。
作者: 乏味—    时间: 2011-6-27 12:10
感谢楼主,终于弄懂了!好东西,应该放到地球村
作者: liweiliniu    时间: 2011-6-27 12:28
这东西 有点小麻烦= =
作者: liqunsz    时间: 2011-6-27 14:33
0. 0 原来现在还有人玩游戏的安装啊(死

感觉Null和Inno都是常用的家伙,不过大概有的时候直接一个简洁的放在那里更好吧,毕竟游戏的亮点也并不在于这些衣服
作者: 精灵使者    时间: 2011-6-28 00:24
我一般用Advanced installer,可以做好多的安装版恩。具体更深的我还没有研究过恩。
作者: Losses    时间: 2011-7-3 18:56
= =! 能给整个安装程序加背景么,能改输入框颜色么,能改按钮颜色布局么,能改安装程序界面尺寸么……
求方法……
(喂——这货无耻了——
作者: 思想飞机    时间: 2011-7-11 17:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: 暗夜荆棘—佩恩    时间: 2011-7-11 18:01
这东西好深奥啊!!!我也学学。但为什么安装中需要那么多脚本,这真让人头疼啊!
作者: 还我河山    时间: 2011-7-26 11:27
要有示例就好了
作者: 夕阳武士    时间: 2011-7-26 14:10
其实好像,有点麻烦啊= =|||还不如让玩家直接点开玩
作者: 素材发布    时间: 2011-7-26 14:23
这个东西的步骤好像挺麻烦的说 好有跟RM脚本系统挂钩
作者: 清明荷上    时间: 2011-7-26 14:58
没看懂~
作者: 763663412    时间: 2011-8-11 15:10
:)


763663412于2011-8-11 15:11补充以下内容:

作者: BS包仔    时间: 2011-8-11 16:22
看上去好麻烦,LS会被河蟹吧,如果RPG游戏都网络式,那么网断的时候没单机游戏的你让他们玩神马?
作者: chg1998    时间: 2012-1-15 21:04
本人自顶,别沉




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1