NSIS脚本实例(RCP)

; 安装程序初始定义常量
!define PRODUCT_NAME "银驼铃MSAP2000网元管理软件"
!define PRODUCT_VERSION "1.0"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"

;安装程序的压缩方式
SetCompressor lzma

;安装类型
InstType "完全安装"
InstType "推荐安装"
InstType "精简安装"

; ------ MUI 现代界面定义 (1.67 版本以上兼容) ------
!include "MUI.nsh"
!include "Sections.nsh"

; MUI 预定义常量

;只有单击"取消"才能取消安装
!define MUI_ABORTWARNING

;安装程序的安装图标和卸载图标
!define MUI_ICON "D:\GTT\MSAP2000\GTT.ico"
!define MUI_UNICON "D:\GTT\MSAP2000\GTT.ico"

;欢迎页面左边的图片
!define MUI_WELCOMEFINISHPAGE_BITMAP "D:\GTT\MSAP2000\orange.bmp"

;下面三行定义上面图片在右边显示以有图片的路径
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_RIGHT
!define MUI_HEADERIMAGE_BITMAP "D:\GTT\MSAP2000\logo.bmp"

;区段描述在下方显示。
!define MUI_COMPONENTSPAGE_SMALLDESC

; 欢迎页面

;自已定义软件的标题
!define MUI_WELCOMEPAGE_TITLE "银驼铃MSAP2000网元管理器V1.0"

;欢迎页面
!insertmacro MUI_PAGE_WELCOME

;组件选择页面
!insertmacro MUI_PAGE_COMPONENTS
; 安装目录选择页面
!insertmacro MUI_PAGE_DIRECTORY
; 安装过程页面
!insertmacro MUI_PAGE_INSTFILES
; 安装完成页面

;在安装完成页面上显示要运行的程序。
!define MUI_FINISHPAGE_RUN "$INSTDIR\netunit.exe"
!insertmacro MUI_PAGE_FINISH

; 安装卸载过程页面
!insertmacro MUI_UNPAGE_INSTFILES

; 安装界面包含的语言设置
!insertmacro MUI_LANGUAGE "SimpChinese"

; 安装预释放文件
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
; ------ MUI 现代界面定义结束 ------

;安装程序的名字和版本号
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
;编译后的安装程序的保存位置。
OutFile "d:\银驼铃MSAP2000网元管理软件V1.0.exe"
;安装路径
InstallDir "$PROGRAMFILES\银驼铃MSAP2000"
;在安装过程中安装信息是否可见。(默认为可见,参数为hide只显示一个显示按钮,单击按钮还可以看到。)
ShowInstDetails show
ShowUnInstDetails show

;安装程序下面线上的文字
BrandingText "北京银驼铃通信技术发展有限公司"

;各个区段。
Section "主程序" SEC01
SetOutPath "$INSTDIR"
SectionIn 1 2 3 RO
SetOverwrite ifnewer
File /r "D:\netunit\*.*"
SectionEnd
SectionGroup "JRE" soft
Section "jre1.6" netunit
SectionIn 1 2 3
SetOutPath "$INSTDIR\GTTtool"
SetOverwrite ifnewer
SectionEnd
Section "JAVA环境" SEC02
SetOutPath "$INSTDIR\jre"
SectionIn 1
File /r "D:\netunit\jre\*.*"
ReadRegStr $0 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path"
WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path" "$INSTDIR\jre\bin;$0"
WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "JRE_HOME" "$INSTDIR"
;在开始菜单程序组下建立一名为"银驼铃MSAP2000"的目录。
CreateDirectory "$SMPROGRAMS\银驼铃MSAP2000"
;在该目录下建立快捷方式。
CreateShortCut "$SMPROGRAMS\银驼铃MSAP2000\jre.lnk" "$INSTDIR\GTTtool\jre.exe"
File /r "D:\netunit\jre.exe"
SectionEnd
SectionGroupEnd
Section "创建桌面快捷方式" desk
SectionIn 1 2 3
SetOverwrite ifnewer
;在桌面上建立快捷方式。
CreateShortCut "$DESKTOP\netunit.lnk" "$INSTDIR\netunit.exe"
SectionEnd
Section "创建快速启动快捷方式" quicklaunch
SectionIn 1 2
SetOverwrite ifnewer
;在快速启动栏中创建快速启动快捷方式。
CreateShortCut "$QUICKLAUNCH\netunit.lnk" "$INSTDIR\netunit.exe"
SectionEnd
Section "创建开始菜单快捷方式" programlink
SectionIn 1 2
SetOverwrite ifnewer
CreateDirectory "$SMPROGRAMS\银驼铃MSAP2000"
CreateShortCut "$SMPROGRAMS\银驼铃MSAP2000\netunit.lnk" "$INSTDIR\netunit.exe"
SectionEnd
Section "创建卸载程序" uninst
SectionIn 1
SetOverwrite ifnewer
;以下几行是创建卸载程序。
WriteUninstaller "$INSTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
CreateDirectory "$SMPROGRAMS\银驼铃MSAP2000"
;在程序组中建立卸载快捷方式。
CreateShortCut "$SMPROGRAMS\银驼铃MSAP2000\卸载银驼铃MSAP2000网元管理软件V1.0.lnk" "$INSTDIR\uninst.exe"
SectionEnd
/******************************
* 以下是安装程序的卸载部分 *
******************************/

;区段描述。
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "银驼铃MSAP2000网元管理软件主程序,不可缺少的哦!"
!insertmacro MUI_DESCRIPTION_TEXT ${desk} "创建桌面快捷方式!"
!insertmacro MUI_DESCRIPTION_TEXT ${programlink} "创建开始菜单快捷方式!"
!insertmacro MUI_DESCRIPTION_TEXT ${uninst} "创建卸载程序和[控制面板]的[添加或删除程序]中创建卸载程序图标!"
!insertmacro MUI_FUNCTION_DESCRIPTION_END

;以下是卸载区段。
Section Uninstall
Delete "$INSTDIR\uninst.exe"
Delete "$SMPROGRAMS\银驼铃MSAP2000\卸载卸载银驼铃MSAP2000网元管理软件V1.0.lnk"
Delete "$DESKTOP\netunit.lnk"
Delete "$SMPROGRAMS\银驼铃MSAP2000\Netunit.lnk"
Delete "$QUICKLAUNCH\netunit.lnk"
RMDir /r "$SMPROGRAMS\银驼铃MSAP2000"

RMDir /r "$INSTDIR"

DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
SetAutoClose true
SectionEnd

#-- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--#
Function un.onInit
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "确定卸载银驼铃MSAP2000网域管理器软件V1.0吗?" IDYES +2
Abort
FunctionEnd

Function un.onUninstSuccess
HideWindow
MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地从你的计算机移除。"
FunctionEnd


你可能感兴趣的:(windows,脚本,Microsoft,D语言)