Windows软件打包方法
来源:互联网 发布:过期备案域名查询 编辑:程序博客网 时间:2024/06/07 17:52
NSIS脚本
NSIS(Nullsoft Scriptable Install System)的开源的Windows系统下的安装程序制作工具,它提供了安装、卸载、系统设置、文件压缩等等功能,通过NSIS脚本语言来涉及安装程序设计。
- NSIS 打包脚本基础
- NSIS进阶教程
相关工具
- HM NIS Edit
- NSIS: Nullsoft Scriptable Install System
基本语法
变量
nsi脚本用var来定义变量,使用$来进行引用,除了用户自定义的变量(全局)外,nsi脚本中定义了寄存器变量0~9,R0~R9用于参数传递,以及系统变量用于特定用途,这些变量主要有:
常用命令
- !include
- 作用:包含头文件
!include "MUI.nsh"
- !insertmacro
- 作用:插入宏
!insertmacro MUI_PAGE_WELCOME
- Goto
- 作用:跳转到指定标记。[+-][1-9],加号表示从当前位置往前跳转,减号则表示从当前位置往后跳转。数字表示跳转的语句条数。
Goto +4 ;跳转以下4条语句 Goto -3 ; 跳转到前3条语句
- File
- 作用:释放文件到当前输出路径
- 参数
- /r 目录匹配的所有的内容进行递归添加,而且目录结构也会保持。
- /x 排除文件或目录
- /a 保持被添加的文件的属性
- /nonfatal 当文件未找到使用警告来代替错误
File /r *.*
- Delete
- 作用:删除文件
Delete "$INSTDIR\uninst.exe"
- RMDir
- 作用:删除目录
RMDir "$INSTDIR"
- Rename
- 作用:文件重命名
- CreateShortCut
- 作用:创建快捷方式
- CreateShortCut “DESKTOP\Test.lnk”“DESKTOP\Test.lnk”“INSTDIR\Test.exe” “” “$INSTDIR\Resources\Picture\Icon\ Test.ico”
- CreateDirectory
- 作用:递归创建目录。当目录不能创建时给出错误标记。
CreateDirectory "$SMPROGRAMS\Log Download"
- StrCpy
- 作用:复制字符串
StrCpy $0 "a bbbbbbbb" ;$0 = "a bbbbbbbb"
- StrCmp
- 作用:字符串比较,如果字符串1和字符串2相等则调转到第一个标记处,否则调转到第二个标记处。
StrCmp a b fun1 fun2
- ReadRegDWORD
- 作用:读取注册表信息
- MessageBox
- 作用:显示一个包含“消息框文本”的消息框。“消息框选项列表”必须为下面的一个或多个,多个使用 | 来隔开。
- MB_OK - 显示 OK 按钮
- MB_OKCANCEL - 显示 OK 和取消按钮
- MB_ABORTRETRYIGNORE - 显示退出、重试、忽略按钮
- MB_RETRYCANCEL - 显示重试和取消按钮
- MB_YESNO - 显示是和否按钮
- MB_YESNOCANCEL - 显示是、否、取消按钮
- MB_ICONEXCLAMATION - 显示惊叹号图标
- MB_ICONINFORMATION - 显示信息图标
- MB_ICONQUESTION - 显示问号图标
- MB_ICONSTOP - 显示终止图标
- MB_TOPMOST - 使消息框在最前端显示
- MB_SETFOREGROUND - 设置前景
- MB_RIGHT - 右对齐文本
- MB_RTLREADING - RTL 阅读次序
- MB_DEFBUTTON1 - 默认为按钮 1
- MB_DEFBUTTON2 - 默认为按钮 2
- MB_DEFBUTTON3 - 默认为按钮 3
- MB_DEFBUTTON4 - 默认为按钮 4
- 作用:显示一个包含“消息框文本”的消息框。“消息框选项列表”必须为下面的一个或多个,多个使用 | 来隔开。
脚本实现
修改Head图片
!define MUI_HEADERIMAGE!define MUI_HEADERIMAGE_BITMAP "installheader.bmp"
修改界面左侧的图片信息
!define MUI_WELCOMEFINISHPAGE_BITMAP "installheader.bmp"
修改安装和卸载图标
!define MUI_ICON "${NSISDIR}\install.ico"!define MUI_UNICON "${NSISDIR}\uninstall.ico"
创建快捷方式
CreateShortCut "$SMPROGRAMS\Test\Test.lnk" "$INSTDIR\Test.exe" CreateShortCut "$DESKTOP\Test.lnk" "$INSTDIR\Test.exe"
设置安装界面语言
!insertmacro MUI_LANGUAGE "SimpChinese" ;简体中文!insertmacro MUI_LANGUAGE "English" ;英文
显示安装和卸载进度
ShowInstDetails showShowUnInstDetails show
显示消息框
Section "MainSection" SEC01 SetOutPath "$INSTDIR" SetOverwrite ifnewer File /r *.* MessageBox MB_OKCANCEL "OK | Cancel"SectionEnd
阅读全文
0 0
- Windows软件打包方法
- 。net软件打包方法
- linux 下软件发行打包 方法
- 安全模式下卸载windows installer打包的软件
- 如何打包发布基于Qt4 Windows的软件
- 如何打包发布基于Qt4 Windows的软件
- 如何打包发布基于Qt4 Windows的软件
- 如何打包发布基于Qt4 Windows的软件
- windows下双击可运行的Java软件打包方案
- 如何打包发布基于Qt4 Windows的软件
- 如何打包发布基于Qt4 Windows的软件
- 【Qt】如何打包发布基于Qt4 Windows的软件
- windows下双击可运行的Java软件打包方案
- windows下双击可运行的Java软件打包方案
- 软件打包
- SQlite3软件的安装方法说明(附打包资源)
- windows下cocos2dx3.4中打包apk的方法
- Qt打包和打包软件
- 免费申请个人微信公众号,个人开通微信公众号的方法和费用
- 先刷一波线段树吧
- 20. 堆排序
- SpringMVC 拦截器的原理图
- Erlang的调度原理(译文)
- Windows软件打包方法
- 不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁
- sparkContext源码分析
- maven 多模块合并war包
- Angular 内置属性型指令
- 二十七、偏函数
- python 对excel操作用法详解
- angular4 通过httpclient调http接口,出现access-control-allow-origin跨域问题解决办法
- 工业协议之1:数字可寻址照明协议-DALI总线的个人整理