NSI安装文件脚本解释

; Calendar.nsi
;
; 这是我使用的一个小软件的安装文件脚本,其中包含了
; 用户安装目录选择、核心程序组件与快捷方式创建选择、卸载程序
 
;--------------------------------
 
; 安装程序名称,将显示在安装程序对话框标题
Name "日历1900-2100"
 
; 生成的单个安装执行文件
OutFile "Calendar-Setup.exe"
 
; 缺省安装目录
InstallDir $PROGRAMFILES\Calendar1900-2100
 
; 写注册表,标示该程序已经安装
InstallDirRegKey HKLM "Software\Calendar1900-2100" "Install_Dir"
 
;--------------------------------
 
; 程序窗口

; 安装组件内容选择窗口 
Page components
; 安装目录选择窗口
Page directory
; 安装文件
Page instfiles

; 装载中文界面资源,如果没有这句,缺省为英文界面 
LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf"

; 卸载程序确认 
UninstPage uninstConfirm
; 卸载内容
UninstPage instfiles
 
;--------------------------------
 
; 安装内容
Section "日历1900-2100","日历核心组件"
 
  SectionIn RO
 
  ; 设置安装目录.
  SetOutPath $INSTDIR
 
  ; 要打包安装的文件
  File "E:\Rookie\WinASM\Calendar\Release\Calendar.exe"
  File "E:\Rookie\WinASM\Calendar\Release\HBlibrary.dll"
  File /oname=$SYSDIR\hbhap.dll "E:\Rookie\WinASM\Calendar\Release\hbhap.dll"
  File "E:\Rookie\WinASM\Calendar\Release\distributer.txt"
 
  ; 写注册表
  WriteRegStr HKLM SOFTWARE\Calendar1900-2100 "Install_Dir" "$INSTDIR"
 
  ; 写卸载信息
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Calendar1900-2100" "DisplayName" "日历1900-2100"
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Calendar1900-2100" "UninstallString" '"$INSTDIR\uninstall.exe"'
  WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Calendar1900-2100" "NoModify" 1
  WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Calendar1900-2100" "NoRepair" 1
  WriteUninstaller "uninstall.exe"
 
SectionEnd
 
; Optional section (can be disabled by the user)
Section "开始菜单快捷方式"
 
  CreateDirectory "$SMPROGRAMS\Calendar1900-2100"
  CreateShortCut "$SMPROGRAMS\Calendar1900-2100\卸载.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
  CreateShortCut "$SMPROGRAMS\Calendar1900-2100\日历1900-2100.lnk" "$INSTDIR\Calendar.exe" "" "$INSTDIR\Calendar.exe" 0
 
SectionEnd
 
;--------------------------------
 
; 卸载程序部分
 
Section "Uninstall"
 
  ; 删除注册表项
  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Calendar1900-2100"
  DeleteRegKey HKLM SOFTWARE\Calendar1900-2100
 
  ; 删除相关文件
  Delete $INSTDIR\Calendar.exe
  Delete $INSTDIR\distributer.txt
  Delete $INSTDIR\HBlibrary.dll
  Delete $SYSDIR\hbhap.dll
  ;Delete $INSTDIR\makensisw.exe
  Delete $INSTDIR\uninstall.exe
 
  ; 删除快捷方式
  Delete "$SMPROGRAMS\Calendar1900-2100\*.*"
 
  ; 删除程序目录
  RMDir "$SMPROGRAMS\Calendar1900-2100"
  RMDir "$INSTDIR"
 
SectionEnd
posted @ 2005-06-17 18:23  Rookie.Zhang  阅读(2976)  评论(0编辑  收藏  举报