win - 打包 nsis 教程

 该脚本使用 HM VNISEdit 脚本编辑器向导产生 ; 安装程序初始定义常量 
!define PRODUCT_NAME "产品名称" !define PRODUCT_VERSION "产品版本号" !define PRODUCT_PUBLISHER "产品发布者" 
!define PRODUCT_WEB_SITE "http://testapp.com" #网址 !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\testapp.exe" 
!define PRODUCT_REGKEY "Software\testapp"  # 创建注册表自己程序的键 !define 
PRODUCT_UNINST_KEY 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"#这里定义的变量,
最后会显示在控制面板的添加/删除程序的列表里。 
!define PRODUCT_UNINST_ROOT_KEY "HKLM" 
SetCompressor lzma #设置文件压缩格式,NSIS共提供3种压缩格式。 !include "MUI.nsh" #引入新式用户界面函数库 !include "StrFunc.nsh"  
!include "Library.nsh" 
!define MUI_ABORTWARNING #安装未完成,而用户要退出时显示提示。 !define MUI_ICON "安装图标" 
!define MUI_UNICON "卸载图标" 
!define MUI_HEADERIMAGE #标题图片,可放产品/公司的图片。 
!define MUI_HEADERINAGE_RIGHT #标题图片所在位置,左/右。 !define MUI_HEADERIMAGE_BITMAP "标题图片" 
!define MUI_WELCOMEPAGE_TITLE "欢迎使用“产品”安装向导" #欢迎界面 
!define MUI_WELCOMEPAGE_TEXT "\r\n这个安装向导将指引你完成“产品”的安装进程。\r\n\r\n开始安装前,建议先关闭其他所有应用程序。\r\n\r\n$_CLICK" !insertmacro MUI_PAGE_WELCOME 
!define MUI_LICENSEPAGE_TEXT_TOP "阅读协议的其余部分,请按<PgDn>往下滚动页面。" #协议显示界面 
!define MUI_LICENSEPAGE_TEXT_BOTTOM "如果同意协议中的条款,请选择“接受协议中的条款”并$_CLICK"  
!define MUI_LICENSEPAGE_RADIOBUTTONS #协议条款接受选择,也有别的协议接受方式,看个人爱好。 
!define MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT "接受协议中的条款" !define MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE "不接受协议中的条款" !insertmacro MUI_PAGE_LICENSE "License.txt" #你的协议文件 
!insertmacro MUI_PAGE_COMPONENTS #程序组件界面,用来选择要安装的程序组件 !insertmacro MUI_PAGE_DIRECTORY #程序的安装目录 !insertmacro MUI_PAGE_INSTFILES #程序安装进程显示 !insertmacro MUI_PAGE_FINISH #安装完成界面 
!insertmacro MUI_UNPAGE_WELCOME #卸载欢迎界面 !insertmacro MUI_UNPAGE_CONFIRM #卸载确认界面 !insertmacro MUI_UNPAGE_INSTFILES #卸载进程显示 !insertmacro MUI_UNPAGE_FINISH #卸载完成界面 




       var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);    







!insertmacro MUI_LANGUAGE "SimpChinese" #界面语言设置【简体中文】 Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" #标题栏显示文字 OutFile "Setup.exe" #输出文件名 
LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf" 
InstallDir "$PROGRAMFILES\testapp" #程序安装路径,默认是"C:\Programfiles\" Icon "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" 
UninstallIcon "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" 
InstallDirRegKey HKLM "${PRODUCT_UNINST_KEY}" "UninstallString" 
DirText "安装程序将安装 $(^Name) 在下列文件夹。$\r$\n$\r$\n要安装在不同文件夹,单击 [浏览] 并选择其他文件夹。" 
ShowInstDetails show #显示安装详细信息,3种选择。 ShowUnInstDetails show #显示卸载详细信息,3种选择。 
=========================主程序================================== Section "MainSection" SEC01 
  SetDetailsPrint textonly #InstFiles界面进度条上面显示的文字   DetailPrint "正在安装必须的程序组件..." 
  SetDetailsPrint none  
  SectionIn RO #如果指定 RO 作为一个参数,则该区段将被设为只读区段。   SetAutoClose true 
  SetOutPath "$INSTDIR" #程序文件的输出路径 
  SetOverwrite ifnewer 
  File "/oname=testapp.exe" "C:\Program Files\NSIS\NSIS.exe"  # 把 NSIS.exe 改名作为测试例子程序 
  createDirectory "$SMPROGRAMS\测试安装" 
  createShortCut "$SMPROGRAMS\测试安装\testapp.lnk" "$INSTDIR\testapp.exe" SectionEnd 
Section -AdditionalIcons 
  createShortCut "$SMPROGRAMS\测试安装\Uninstall.lnk" "$WINDIR\uninst_testapp.exe" # 卸载程序的路径也要改 SectionEnd Section -Post 
  WriteUninstaller "$WINDIR\uninst_testapp.exe"  # 把卸载程序放到了 "C:\Windows" ,注意,放到可能造成重复文件的地方,一定要把卸载程序改为特殊的名字,防止给另外的卸载程序覆盖。 
  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\testapp.exe" 
  WriteRegStr HKLM "${PRODUCT_REGKEY}" "" "$INSTDIR" # 写入安装时的安装路径。   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" 
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$WINDIR\uninst_testapp.exe" # 卸载程序的路径也要改 
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\testapp.exe" 
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" 




 var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);







"${PRODUCT_VERSION}" 
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" 
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" SectionEnd 
Function un.onUninstSuccess 
  HideWindow 
  MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地从你的计算机移除。" FunctionEnd Function un.onInit 
  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "你确实要完全移除 $(^Name) ,其及所有的组件?" IDYES +2   Abort FunctionEnd Section Uninstall 
  ReadRegStr $INSTDIR HKLM "${PRODUCT_REGKEY}" "" 
  # 在注册表中强行读入安装路径到变量 $INSTDIR,因为卸载程序默认只认为自己所在路径为 $INSTDIR 路径 
  delete "$WINDIR\uninst_testapp.exe" # 卸载程序的路径也要改   delete "$INSTDIR\testapp.exe" 
  delete "$SMPROGRAMS\测试安装\Uninstall.lnk"   delete "$SMPROGRAMS\测试安装\testapp.lnk"   RMDir "$SMPROGRAMS\测试安装"   RMDir "$INSTDIR" 
  deleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"   deleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"   SetAutoClose true SectionEnd
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值