注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

月伴流星的博客

 
 
 

日志

 
 

NSIS不完全脚本注释  

2009-09-12 14:20:21|  分类: NSIS 封装技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

不完全脚本注释

; 该脚本使用 HM VNISEdit 脚本编辑器向导产生
; 安装程序初始定义常量
!define PROD T_NAME "产品名称"
!define PROD T_VERSION "产品版本号"
!define PROD T_P LISHER "产品发布者"
!define PROD T_WEB_SITE "http://testapp.com/" #网址
!define PROD T_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\testapp.exe"
!define PROD T_REGKEY "Software\testapp"   # 创建注册表自己程序的键
!define PROD T_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PROD T_NAME}"#这里定义的变量,最后会显示在控制面板的添加/删除程序的列表里。
!define PROD T_UNINST_ROOT_KEY "HKLM"
SetCompressor lzma #设置文件压缩格式,NSIS共提供3种压缩格式。
!incl? "MUI.nsh" #引入新式用户界面函数库
!incl? "StrFunc.nsh"
!incl? "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 #卸载完成界面
!insertmacro MUI_LANG GE "SimpChinese" #界面语言设置【简体中文
Name "${PROD T_NAME} ${PROD T_VERSION}" #标题栏显示文字
OutFile "Setup.exe" #输出文件名
LoadLang geFile "${NSISDIR}\Contrib\Lang ge 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 "${PROD T_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 tr
   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 "${PROD T_DIR_REGKEY}" "" "$INSTDIR\testapp.exe"
   WriteRegStr HKLM "${PROD T_REGKEY}" "" "$INSTDIR" # 写入安装时的安装路径。
   WriteRegStr ${PROD T_UNINST_ROOT_KEY} "${PROD T_UNINST_KEY}" "DisplayName" "$(^Name)"
   WriteRegStr ${PROD T_UNINST_ROOT_KEY} "${PROD T_UNINST_KEY}" "UninstallString" "$WINDIR\uninst_testapp.exe" # 卸载程序的路径也要改
   WriteRegStr ${PROD T_UNINST_ROOT_KEY} "${PROD T_UNINST_KEY}" "DisplayIcon" "$INSTDIR\testapp.exe"
   WriteRegStr ${PROD T_UNINST_ROOT_KEY} "${PROD T_UNINST_KEY}" "DisplayVersion" "${PROD T_VERSION}"
   WriteRegStr ${PROD T_UNINST_ROOT_KEY} "${PROD T_UNINST_KEY}" "URLInfoAbout" "${PROD T_WEB_SITE}"
   WriteRegStr ${PROD T_UNINST_ROOT_KEY} "${PROD T_UNINST_KEY}" "P lisher" "${PROD T_P LISHER}"
SectionEnd
Function un.onUninstS cess
   HideWindow
   MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地从你的计算机移除。"
FunctionEnd
Function un.onInit
   MessageBox MB_ICONQSTION|MB_YESNO|MB_DEFBUTTON2 "你确实要完全移除 $(^Name) ,其及所有的组件?" IDYES +2
   Abort
FunctionEnd
Section Uninstall
   ReadRegStr $INSTDIR HKLM "${PROD T_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 ${PROD T_UNINST_ROOT_KEY} "${PROD T_UNINST_KEY}"
   deleteRegKey HKLM "${PROD T_DIR_REGKEY}"
   SetAutoClose tr
SectionEnd
  评论这张
 
阅读(763)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017