NSIS使用详解(图文详解版)_第1页
NSIS使用详解(图文详解版)_第2页
NSIS使用详解(图文详解版)_第3页
NSIS使用详解(图文详解版)_第4页
NSIS使用详解(图文详解版)_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

NSIS 使用教程使用教程 NSIS 简介 简介 NSIS 是 Nullsoft 脚本安装系统 Nullsoft scr ptable Installation System 的缩写 它是一个免费的 Win32 安装 卸载系统 它 的特点 脚本简洁高效 系统开销小 当然进行安装 卸载 设置系统设置 解压文件等等更不在话下 几乎可以做所有的事情 更 多的功能请阅读蓝色网际的 NSIS 帮助文档 对于制作 NSIS 的使用教程 蓝色网际是 NSIS 方面的专家 她的 NSIS 帮助文档 就是一本 NSIS 的圣经 而对初学者来说 最头疼的莫过于一大堆看不懂的代码 对他们来说无异于一本天书 缘于此 特草此基础教程 希望 NSIS 专家们勿见笑 不当之处 欢迎批评指正以期完善 也希望给初学者作个铺垫 工具 工具 NIS Edit Nullsoft Installation System NSIS 此两款软件都可以到世纪主站上下载到 思路思路 脚本向导 修改代码 个性化安装包 步骤步骤 I 利用向导制作安装包 1 安装上述两款 启动 NIS Edit 在 文件 菜单中 新建脚本 向导 下一步 如图 1 附图附图 2 设置应用程序信息 如软件名称 版本 出版人等 如图 2 当然最一个网站可以留空 如果设置了 则安装包会生成一个对应网址的 Internet 快捷方式 附图附图 3 设置程序选项 如安装包图标 安装程序文件 安装包语言 这里选 SimChinese 用户图形界面及压缩方式等 我们可以选用默认值 也可以点击对应项目的按钮或下拉菜单更改设置 如下图 3 附图附图 4 设置安装目录及授权信息 如图 4 后 下一步 附图附图 5 选定程序文件 即我们要打包的文件 可以使用默认的 Mainsection 也可以根据需要进行更改或新建组别 如果组比较多时 你也可以设置是否 允许用户选择要安装的组件 如图 5 附图附图 完毕后进行 添加文件 操作 选定我们要打包的文件 如图 6 完成自动后返回的图 5 的界面 执行下一步操作 图图 6 设置开始菜单中文件夹名称及快捷方式 这里我们使用默认值 如图 7 按 下一步 附图附图 7 指定安装后要运行的程序 同上用默认值并设置相关运行参数及描述 如果你和我一样懒的话 或不想在安装运行任何程序 则留空即可 如图 8 附图附图 8 这步是有关卸载程序的相关信息 如卸载时的提示 卸载的图标等 如图 9 附图附图 9 至此完成向导 如图 10 钩选 保存脚本 转换文件路径到相关路径 及 编译脚本 附图附图 提示保存脚本路径并自动编译脚本 我们可以按或 F9 运行安装程序进行预览 向导产生的安装包效果图如图 11 所示 附图附图 II 修改代码以个性化安装包 修改代码以个性化安装包 10 选择可修改之处 1 软件 LOGO 如图 11A 安装包标题 图 11B 图 11C 图 12 图 13 图 11 见上楼 图 12 如下附图附图 图 13 如下 附图附图 2 闪屏界面 11 修改代码修改代码 1 修改软件 LOGO 在源代码 MUI Settings 后面添加下列代码 以下是代码片段 以下是代码片段 define MUI WELCOMEFINISHPAGE BITMAP G temp pwr bmp 注释 引号内为位图的路径 位图大小大约为 165 298 效果图如图 14 所示 附图附图 2 修改安装包标题 在同上位置添加下列代码 以下是代码片段 以下是代码片段 define MUI WELCOMEPAGE TITLE r n PDF2all 5 35d 汉化版 注释 r n 为换行标志 效果图上楼如图 14 所示 3 修改图 11C 中的说明 同上位置添加下列代码 以下是代码片段 以下是代码片段 define MUI WELCOMEPAGE TEXT pdf2all 是一个转换器的集合 它能转换包括 doc2pdf Word to PDF xls2pdf Excel Sheet 到 PDF ppt2pdf PowerPoint 到 PDF mdb2pdf Access 到 PDF ps2pdf Postscr pt 到 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 所示 4 对图 12 中的修改 在源代码 以下是代码片段 以下是代码片段 ShowInstDetails show ShowUnInstDetails show 后添加 以下是代码片段 以下是代码片段 BrandingText 软件汉化 高芳銮 Raindy 效果图如图 15 所示 附图附图 5 在完成添加 汉化说明 只要在源代码 以下是代码片段 以下是代码片段 Finish page 后添加 以下是代码片段 以下是代码片段 define MUI FINISHPAGE SHOWREADME INSTDIR 汉化说明 txt define MUI FINISHPAGE SHOWREADME TEXT 汉化说明 效果所示 附图附图 6 闪屏界面 可以在源代码中加入下列代码即可 A 普通效果 以下是代码片段 以下是代码片段 Function onInit SetOutPath TEMP File oname spltmp bmp G Temp Nsisres splash bmp splash show 2300 TEMP spltmp Pop 0 FunctionEnd 效果图如此软件下载 pdf2all setup rar B 渐隐闪屏 以下是代码片段 以下是代码片段 Function OnInit InitPluginsDir File oname PLUGINSDIR splash bmp G Temp Nsisres splash bmp advsplash show 1500 800 600 1 PLUGINSDIR splash Functionend 7 背景音乐 贯穿安装过程 以下是代码片段 以下是代码片段 Var hmci Function OnInit InitPluginsDir SetOutPath PLUGINSDIR File G Temp Nsisres music mp3 说明 源 MP3 的存放路径 System Call msvfw32 dll MCIWndCreate i 0 i 0 i 0 x0070 t PLUGINSDIR music mp3 i r0 SendMessage 0 0 x0465 0 STR play repeat System Call user32 dll ShowWindow i r0 i 0 StrCpy hmci 0 Functionend Section add your codes SendMessage hmci 0 x0010 0 0 Sectionend 后语 以上仅是 NSIS 制作安装包最基本的操作 供初学者入门之用 故云 初级篇 希望不会怡笑大方 更希望蓝 MM 陈敏毅老大等 NSIS 高手的中高级教程 相关资料下载相关资料下载 以 Pdf2allV5 35d 为例 可直接点击下载可直接点击下载 全文的 Word 文档附在附件中 NSIS rar 偶以 Pdf2allV5 35d 为例 制作了安装包制作动画演示动画演示 可直接点击下载可直接点击下载 相关文件列表如下 动画演示 pdf2all movie exe 安装包的 NSIS 脚本代码 PDF2all nsis nsi txt 成品的安装包 pdf2all setup exe 常见修改的代码 code txt NSIS 基础教程 CHM 版 NSIS 安装制作基础教程 CHM 格式 特别感谢 tracky 感谢 chenmy 老大提供空间 偶的闪屏图 附图附图 下面摘引一些论坛的讨论 原帖点击进入 dujuan509 渐现渐隐的代码 以下是代码片段 以下是代码片段 Function OnInit InitPluginsDir File oname PLUGINSDIR splash bmp c test bmp advsplash show 1500 800 600 1 PLUGINSDIR splash Functionend 背景音乐 贯穿安装全过程 以下是代码片段 以下是代码片段 Function OnInit InitPluginsDir SetOutPath PLUGINSDIR File c a mp3 System Call msvfw32 dll MCIWndCreate i 0 i 0 i 0 x0070 t PLUGINSDIR a mp3 i r0 SendMessage 0 0 x0465 0 STR play repeat System Call user32 dll ShowWindow i r0 i 0 StrCpy hmci 0 Functionend Section add your codes SendMessage hmci 0 x0010 0 0 Sectionend 背景音乐 2 以下是代码片段 以下是代码片段 Section Function SetOutPath PLUGINSDIR File WINDIR MEDIA chimes wav BgImage Sound NOUNLOAD WAIT PLUGINSDIR chimes wav BgImage Clear NOUNLOAD Sectionend Functionend 最后一种方法使用了 bgimage 插件 安装程序执行到该插件时会等待 wav 播放完再继续执行 raindy 谢谢 dujuan509 兄 如果闪屏效果 渐隐 背景音乐 全程 放在一起 那代码该如何修改 偶两者无法兼得 望不吝赐教 dujuan509 以下是代码片段 以下是代码片段 outfile test exe Var hmci Function OnInit InitPluginsDir SetOutPath PLUGINSDIR File c a mp3 System Call msvfw32 dll MCIWndCreate i 0 i 0 i 0 x0070 t PLUGINSDIR a mp3 i r0 SendMessage 0 0 x0465 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 0 x0010 0 0 Sectionend raindy 谢谢 dujuan509 兄 已经学会了 可惜背景音乐只能支持 MP3 格式 如果能支持 midi 等就好了 蓝色网际 MIDI 请参考这个 DEMO 附件附件 midi zip 蓝色网际 推荐一个 NSIS 的快速编辑器 NotePad2 虽然不是 NSIS 专门编辑器不过有时候比 Venis 方便 因为 Venis 不支持文 本块操作 而且 Venis 对语法高亮做得不是很好 NotePad2 的语法高亮是根据后缀名来确定的 只要你打开 NSI 文件不用 任何设置就会自动语法高亮 其实 NotePad2 作为记事本替代者也非常不过 界面非常相似 而 NotePad2 功能强大了好多 你可以在 下载我修改的版本 主要补全了 NSIS 语法高亮 原版由于很久没更新 NSIS 的语法高亮代码 所以有一些新增的 NSIS 指令不能高亮显示 并作了一些优化 做要是让它更像记事本 贴个图 附图附图 dujuan509 引用引用 zkdpower 2005 年 01 月 25 日 23 时 08 分 我想问一下各位 如何把安装页面中的 Setup 将安装 中的 Setup 改成别的字 你指的是选择安装目录页面的提示文字吧 只需在 以下是代码片段 以下是代码片段 insertmacro MUI PAGE DIRECTORY 前面添加一行 以下是代码片段 以下是代码片段 define MUI DIRECTORYPAGE TEXT TOP 你需要的文字 蓝色网际 引用引用 zjj1988101 2005 年 01 月 26 日 09 时 49 分 引用引用 蓝色网际 2005 年 01 月 26 日 09 时 03 分 用 NSIS 2 03 的吧 那个版本简体语言符合我们的习惯 请教蓝前辈 NSIS 的闪屏图片的格式支持几种格式 只支持位图吗 可以支持其他图片格式吗 这个插件支持 JPG GIF 附件附件 newadvsplash zip 蓝色网际 raindy 有时间的话看看我这个汉化补丁的 NSIS 脚本 然后写一篇教程 嘿嘿 写东西你比较拿手 基本上包括了做补丁包含的大部分情况 自动查询原版软件安装目录并包含目录修正 原版软件的备份和恢复 以及汉化补丁的卸载 对原版进行 MD5 校验 把汉化补丁应用到原版软件不同版本 注册表的修正 主要是右键菜单 数据库的汉化 读取 修改 写入注册表二进制类型数据 NSIS 做补丁的优点是生成文件比较小 而且还可以包含 N 个版本的补丁 附件附件 hb acdsee7 pub 1 nsi zip raindy 引用引用 水木鱼 2005 年 01 月 27 日 17 时 10 分 请问题头的图标是怎么加的 设置了自定义安装图标就会自动显示的 不需要另外添加 自定义安装图标 以下是代码片段 以下是代码片段 define MUI ICON G Temp Nsisres PDFsetup ico 这一点和 INNO 不同 INNO 中则需要在 setup 中设置 以下是代码片段 以下是代码片段 WizardSmallImageFile G 软件测试 尝试汉化 安装包 PDF2all sm bmp 其他需要个性化的地方 建议阅读一下蓝色网际翻译的 NSIS 帮助文档帮助文档 zkdpower 请问各位如何改这些 第一个就是如何把插入的 headerimage 图片放到右边 默认是在左边 第二个就是把 headerimage 上面的字改掉 谢谢 附图附图 dujuan509 1 在脚本开头增加一行 以下是代码片段 以下是代码片段 define MUI HEADERIMAGE 2 在 insertmacro MUI PAGE LICENSE c License txt 前增加两行 以下是代码片段 以下是代码片段 define MUI PAGE HEADER TEXT 111 define MUI PAGE HEADER SUBTEXT 222 蓝色网际 你还是先看看 MUI 文档吧 界面的设置都作了说明 zkdpower 请问蓝色网际 在你的 MUI 文档中有 MUI HEADERIMAGE RIGHT 令本应显示于左边的页眉图像显示于右面 当使用 RTL 语言时 它将会显示于左边而不显示于右边 这么一段话 请问何为 RTL 语言呢 本人愚拙 望指点 蓝色网际 RTL 就是 Right to Left 从右到左书写的语言 大概像阿拉伯这样的语言吧 restools venis function 向导功能在 NISEdit 上完整实现 晚上或明天放出 不过需要人帮忙把向导脚本编写完整 因为写程序时只是 拿了 4 个具代表性的 function 来作为测试 这是这次放出版本实现的功能 要知道 NSIS 的 funciton 有这么多啊 以下是代码片段 以下是代码片段 NSIS 函数向导文件 脚本解释 Textbox 文本框 如果不写入这项 Texbox 默认使用 参数 1 不带引号 0 不显示 1 不带引号 2 带双引号 3 多行显示 Checkbox 允许参数按钮 如果不写入这项 Texbox 默认使用 参数 0 必填参数 0 必填参数 1 可选择 2 将来使用 Button 选择参数填充按钮 如果不写入这项 Button 默认使用 参数 0 选择参数 0 不显示 1 浏览选择文件 2 浏览选择目录 3 选择参数 4 选择排序后的参数 5 选择可复合参数 6 选择已排序的可复合参数 7 可选择目录或文件 标记 LABELS 用在 Goto 这类函数中的 标记 参数 函数 FUNCTIONS 用在 Call 这类函数中的调用 参数 以上两个常用变量是会自动检测 NSIS 脚本里面的已有标记和函数的 例子 Abort 函数名字 Help 取消安装 停止执行脚本 并且在状态显示里显示用户信息 在函数向导对话框中旁边的简明帮助 NumArgs 1 函数共有几个参数 Arg1 用户信息 显示在参数顶上的提示语句 Button1 0 该按钮不显示 Checkbox1 0 该参数为必填项 Textbox1 2 该参数为带双引号的字符串 如果是多行字符例如简明帮助 如果你要强行换行 请用英文的逗号 如果你必须要显示英文的逗号 请用双引号括起整 个字符串 Help Cancels the install stops execution of scr pt and displays user message in the status display Abort Help 取消安装 停止执行脚本 并且在状态显示里显示用户信息 NumArgs 1 Arg1 用户信息 Checkbox1 0 Button1 0 Textbox1 2 BringToFront Help 使安装程序窗口可见并把它带到其他窗口的最前端 NumArgs 0 CreateShortCut Help 创建一个指向 目标文件 的快捷方式 快捷文件 lnk 可以带 参数 参数 NumArgs 8 Arg1 快捷文件 lnk Checkbox1 0 Button1 0 Textbox1 2 Arg2 目标文件 Checkbox2 0 Button2 1 Textbox2 2 Arg3 参数 Checkbox3 1 Button3 0 Textbox3 2 Arg4 图标文件 Checkbox4 1 Button4 1 Textbox4 2 Arg5 图标索引号 Button5 0 Checkbox5 1 Textbox5 1 Arg6 启动选项 Button6 3 Checkbox6 1 Textbox6 1 Options6 SW SHOWNORMAL SW SHOWMAXIMIZED SW SHOWMINIMIZED Arg7 键盘快捷键 Button7 0 Checkbox7 1 Textbox7 2 Arg8 描述 Button8 0 Checkbox8 1 Textbox8 2 Goto Help 如果指定了标记 则跳转到 要跳转的标记 NumArgs 1 Arg1 要跳转的标记 偏移 偏移 用户变量 目标 Textbox1 1 Checkbox1 0 Button1 3 Options1 LABELS Call Help 调用 函数名 函数 如果在 Uninstall 区段 Call 仅能调用以 un 开头的函数名 NumArgs 1 Arg1 函数名 标记名 Button1 3 Checkbox1 0 Textbox1 1 Options1 LABELS FUNCTIONS 显示效果 2 弹出函数编辑窗口 3 确定后 输入 这里一提的是 输入时 会自动根据上一行代码的缩进 自动在输入的函数行前面添加前导空格 以减少自己再输 入前面的空格 ISS2NSI v1 0a2 ISS2NSI is a tool for convert Inno Setup scr pt files into NSIS scr pt files Usage Program At the command prompt write iss2nsi issscr pt iss nsiscr pt nsi if nsiscr pt nsi is no specified then the converted scr pt will be saved with the same name of the issscr pt iss but with extension nsi NIS Edit Plugin 1 Close HM NIS Edit 2 Put hmne iss2nsi dll in the plugins directory Default PROGRAMFILES HMSoft NIS Edit Plugins 3 Start HM NIS Edit 4 You will found a new item in the tools menu called Convert InnoSetup scr pt NOTE Before compile the converted scr pt please check it because complete compatibility is NOT available I design this tool to convert my Inno Setup scr pts and is not tested with more complex scr pts The source code is included if you want to contribute to the project for make the converted scr pt 100 compatible with the original Please send my your modifications to ranametal Note that this project is a modification to the Inno Setup 3 0 6 compiler and modifications to the Inno Setup source files are under the Inno Setup license see src is src is license txt Note the files in the src is src directory are unmodified Inno Setup source files needed by the Compile pas unit located in the src directory hmne iss2nsi dll 把这个文件放到 NISEdit 目录下的 Plugins 中就可以使用 没有详细测试 不过如果是针对版本的话 Inno Setup 3 0 6 估计应该没问题吧 ISS2NSI rar 虽然版本太低 用来从 ISS 的脚本转向学习 NSIS 应该容易点吧 ISS2NSI 源码下载 没时间去看看它 只是把它编译成了一个 DLL 有时间看看它是什么原理 ISS2NSI Src rar NISEdit 的增强版本 希望有人来帮帮忙 增加一下函数 否则这个版本也强不到哪里去 把里面的那些文件放入 NISEdit 的目录中 为了区分原版 程序改名为 VNISEdit 两个版本可以同时存在 不过你要把 VNISEdit 设为默认编辑器 才可以默认用它来打开 修正 1 添加一种菜单的皮肤 2 增加 NSIS 函数向导功能 类似 Venis 中的 function 功能 4 改程序调用帮助时 不要把帮助窗口置顶 因为置顶会令到查看帮助时不能切换会编辑器窗口 最新功能 区段结构分析 左图是 VNISEdit 解释的 右图是 Venis 分析的 分析对象 makensis nsi 全景图 试一下呗 分析速度比 Venis 好很多的 基本上感觉不到视图的闪动 线程实时分析 只要改动代码 视图会立刻作出反 应 请问下面那些问题怎样做的 1 怎样控制自定义面的 下一步 按钮的可用与不可用 2 怎样为自定义页面上的组件添加 Change 事件呢 3 我在这个网站里下载的 foobar 汉化增强版的安装文件里看到页面 MUI PAGE COMPONENTS 是怎么做到的 就是怎么把那个 页面的左边改为能显示描述内容和隐蔽一些文本 colonel 蓝色网际蓝色网际 对于控制下一步按钮来说 有三个阶段分别是 页面初始化之前 页面初始化时 页面要关闭时 不同的阶段对应的插入函数不同 比如要在页面初始化之前禁止下一步按钮 MUI 界面可以这样 以下是代码片段 以下是代码片段 define MUI PAGE CUSTOMFUNCTION PRE ComponentPre insertmacro MUI PAGE COMPONENTS Function ComponentPre GetDlgItem 0 HWNDPARENT 1 EnableWindow 0 0 FunctionEnd colonel 那 2 怎样为自定义页面上的组件添加 Change 事件呢 我自定义了一个配置页面 我想用户在完成配置才可激活 下一步 按钮 这 个怎么做的呢 蓝色网际蓝色网际 需要给控件加上 NOTIFY 的标记 例子在我的签名里有 需要先了解 GetDlgItem 和 EnableWindow 指令的作用 colonel 这个问题呢 3 我在这个网站里下载的 foobar 汉化增强版的安装文件里看到页面 MUI PAGE COMPONENTS 是怎么做到的 就是怎么把那个 页面的左边改为能显示描述内容和隐蔽一些文本 怎样使 MUI PAGE COMPONENTS 中的树目录只能在点选复选框才被选中呢 蓝色网际蓝色网际 这个用 Resource Hacker 调整一下控件就行了 默认的 UI 文件是 NSIS Contrib UIs modern exe 到我的签名里下一个特别版的 makensis exe colonel 我不想在组件选择页面中用 onMouseOverSection 来显示 描述 如果架设函数可以增加的话 我就想到这个 回调 onMouseDownSection 我是想通过组件目录里的 OnChange 事件来显示 我不懂 VC 吖 如果我会的话就可以像 MM 你那样去改它的代码了 蓝色网际蓝色网际 特别版的就是这样啊 当你点击组件的时候描述区域才会显示或改变 普通版的只要鼠标移上去就显示了 你没试过吗 colonel 哦 试到了 原来你是改了 onMouseOverSection 回调 对啦 MM 你有没有做过 组件的 OnChange 事件吗 主要是用在 自定义页面上的 是用这个吗 Call shell32 dll SHChangeNotify 蓝色网际蓝色网际 不知道你说的 组件的 OnChange 事件 是什么意思 是不是当组件选择更改的时候调用的函数呢 如果是的话那直接使用 Function onSelChange 就行了 wq99 各位好 我是新手 我在看 function 时 没发现参数的传入 可能我的思维方式不对 function Fname fu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论