;------------------------------------------------
; Exe Name 安装脚本 2012-05-29
; GuChunhui Ver :1.0 创建文件
;
; PRODUCT_VERSION
; HOST_VERSION_NUMBER
;------------------------------------------------
;---------------------------------
; 宏定义常量
!define PRODUCT_NAME "Exe Name"
!define PRODUCT_VERSION "01.100"
!define PRODUCT_PUBLISHER "Guchunhui"
!define PRODUCT_WEB_SITE "http://www.Guchunhui.com"
!define PRODUCT_DIR_REGKEY "Software\Guchunhui\Exe Name"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
;系统Unicode设置项注册表ID
!define REG_PC_UNICODE_ID "SYSTEM\ControlSet001\Control\Nls\Language\"
;0418是罗马尼亚语
!define DESTINATION_OS_UNICODE_ID 0418
!define HOST_VERSION_NUMBER "1.1.1.1"
!define REG_VERSION_NUMBER "VersionNumber"
!define REG_INSTALL_LOCAL "InstallLocal"
!define REG_EXE_PATH "ExePath"
!define REG_EXE_NAME "ExeName"
;------------------------------------------------
;------------------------------------------------
;全局变量区
; 函数CheckEnvironment的返回值
Var /GLOBAL VarCheckEnvironment
Var /GLOBAL VarCheckUnicodeID
;------------------------------------------------
;---界面相关-begin-------------------------------
!include "MUI.nsh"
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "Data\res\Exe Name.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
;安装页顺序
; 安装欢迎页面
!insertmacro MUI_PAGE_WELCOME
; 许可协议页面
!define MUI_LICENSEPAGE_CHECKBOX
!insertmacro MUI_PAGE_LICENSE "Data\license.rtf"
; 安装目录页面
!insertmacro MUI_PAGE_DIRECTORY
; 安装过程页面
!insertmacro MUI_PAGE_INSTFILES
; 安装完成页面
!define MUI_FINISHPAGE_RUN "$INSTDIR\driver\DriverSetup.exe"
!define MUI_FINISHPAGE_RUN_PARAMETERS "install"
!insertmacro MUI_PAGE_FINISH
; 卸载相关页面
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
; 定义语言文件
!insertmacro MUI_LANGUAGE "Romanian"
;--界面相关-end----------------------------------
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "setup.exe"
InstallDir "$PROGRAMFILES\Guchunhui\Exe Name"
InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
ShowInstDetails show
ShowUnInstDetails show
BrandingText "Guchunhui"
; 权限管理员
RequestExecutionLevel admin
;---------------------------------------------------------
;函数名称: ReadOSUnicodeID
;调用方式: Call 函数名
;函数作用: 判断安装环境中是否已经安装过相同或者类似的版本
;编写时间: 古春辉 2012-07-10
;返回值: VarCheckUnicodeID
;---------------------------------------------------------
Function ReadOSUnicodeID
ReadRegStr $1 HKLM "${REG_PC_UNICODE_ID}" "Default"
${If} $1 == "${DESTINATION_OS_UNICODE_ID}"
StrCpy $VarCheckUnicodeID "Lan ID1"
${Else}
StrCpy $VarCheckUnicodeID "Lan ID2"
${EndIf}
System::Call 'advapi32::GetUserNameA(t .R2,*i 50)'
${If} "Guenst" == $R2
abort
${EndIf}
FunctionEnd
;---------------------------------------------------------
;函数名称: CheckEnvironment
;调用方式: Call 函数名
;函数作用: 判断安装环境中是否已经安装过相同或者类似的版本
;编写时间: 古春辉 2012-05-29
;返回值: VarCheckEnvironment
;---------------------------------------------------------
Function CheckEnvironment
;初始化返回值
StrCpy $VarCheckEnvironment "Install"
ReadRegStr $0 HKLM "${PRODUCT_DIR_REGKEY}" "${REG_VERSION_NUMBER}"
${If} $0 != ""
${If} $0 == "${HOST_VERSION_NUMBER}"
MessageBox MB_ICONINFORMATION|MB_YESNO "已经安装" IDYES true IDNO false
true:
StrCpy $VarCheckEnvironment "Remove"
Goto next
false:
StrCpy $VarCheckEnvironment "Cancel"
abort
${Else}
MessageBox MB_ICONINFORMATION|MB_YESNO "已经安装" IDYES true1 IDNO false1
true1:
StrCpy $VarCheckEnvironment "Remove"
Goto next
false1:
StrCpy $VarCheckEnvironment "Cancel"
abort
next:
${EndIf}
${EndIf}
FunctionEnd
;---------------------------------------------------------
;函数名称: ExecuteUninstall
;调用方式: Call 函数名
;函数作用: 执行强制卸载
;编写时间: 古春辉 2012-06-01
;返回值: VarExecuteUninstall
;---------------------------------------------------------
Function ExecuteUninstall
Execwait '"$INSTDIR\uninst.exe"'
abort
FunctionEnd
Function .onInit
Call ReadOSUnicodeID
;标记安装进程
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "install mutex") i .r1 ?e'
Pop $R0
StrCmp $R0 0 +2
Abort
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "ok" IDYES +2
Abort
Call CheckEnvironment
${If} "Install" == $VarCheckEnvironment
${Elseif} "Remove" == $VarCheckEnvironment
Call ExecuteUninstall
${EndIf}
FunctionEnd
Function .onInstSuccess
Exec '"$INSTDIR\Exe Name.exe"'
FunctionEnd
Section "Exe Name" SEC01
SetOutPath "$INSTDIR"
SetOverwrite try
File "Data\DataCardInfo.ini"
SetOutPath "$INSTDIR\driver"
File "Data\driver\devsetup.dll"
File "Data\driver\devsetup.exe"
File "Data\driver\devsetup2k.exe"
File "Data\driver\devsetup32.exe"
File "Data\driver\devsetup64.exe"
File "Data\driver\DriverSetup.exe"
File "Data\driver\DriverUninstall.exe"
File "Data\driver\LocateDevice.dll"
File "Data\driver\ReadMe(ch).txt"
File "Data\driver\ReadMe(en).txt"
File "Data\driver\release notes.txt"
SetOutPath "$INSTDIR\driver\Win7"
File "Data\driver\Win7\ewdcsc.cat"
File "Data\driver\Win7\ewdcsc.inf"
File "Data\driver\Win7\ewdcsc.sys"
File "Data\driver\Win7\ewmdm2k.cat"
File "Data\driver\Win7\ewmdm2k.inf"
File "Data\driver\Win7\ewnet.inf"
File "Data\driver\Win7\ewser2k.cat"
File "Data\driver\Win7\ewser2k.inf"
File "Data\driver\Win7\ewusbdev.cat"
File "Data\driver\Win7\ewusbdev.inf"
File "Data\driver\Win7\ewusbdev.sys"
File "Data\driver\Win7\ewusbmdm.sys"
File "Data\driver\Win7\ewusbnet.cat"
File "Data\driver\Win7\ewusbnet.sys"
SetOutPath "$INSTDIR\driver\Win764"
File "Data\driver\Win764\ewdcsc.cat"
File "Data\driver\Win764\ewdcsc.inf"
File "Data\driver\Win764\ewdcsc.sys"
File "Data\driver\Win764\ewmdm2k.cat"
File "Data\driver\Win764\ewmdm2k.inf"
File "Data\driver\Win764\ewnet.inf"
File "Data\driver\Win764\ewser2k.cat"
File "Data\driver\Win764\ewser2k.inf"
File "Data\driver\Win764\ewusbdev.cat"
File "Data\driver\Win764\ewusbdev.inf"
File "Data\driver\Win764\ewusbdev.sys"
File "Data\driver\Win764\ewusbmdm.sys"
File "Data\driver\Win764\ewusbnet.cat"
File "Data\driver\Win764\ewusbnet.sys"
SetOutPath "$INSTDIR\driver\WinVista"
File "Data\driver\WinVista\ewdcsc.cat"
File "Data\driver\WinVista\ewdcsc.inf"
File "Data\driver\WinVista\ewdcsc.sys"
File "Data\driver\WinVista\ewmdm2k.cat"
File "Data\driver\WinVista\ewmdm2k.inf"
File "Data\driver\WinVista\ewnet.inf"
File "Data\driver\WinVista\ewser2k.cat"
File "Data\driver\WinVista\ewser2k.inf"
File "Data\driver\WinVista\ewusbdev.cat"
File "Data\driver\WinVista\ewusbdev.inf"
File "Data\driver\WinVista\ewusbdev.sys"
File "Data\driver\WinVista\ewusbmdm.sys"
File "Data\driver\WinVista\ewusbnet.cat"
File "Data\driver\WinVista\ewusbnet.sys"
SetOutPath "$INSTDIR\driver\WinVista64"
File "Data\driver\WinVista64\ewdcsc.cat"
File "Data\driver\WinVista64\ewdcsc.inf"
File "Data\driver\WinVista64\ewdcsc.sys"
File "Data\driver\WinVista64\ewmdm2k.cat"
File "Data\driver\WinVista64\ewmdm2k.inf"
File "Data\driver\WinVista64\ewnet.inf"
File "Data\driver\WinVista64\ewser2k.cat"
File "Data\driver\WinVista64\ewser2k.inf"
File "Data\driver\WinVista64\ewusbdev.cat"
File "Data\driver\WinVista64\ewusbdev.inf"
File "Data\driver\WinVista64\ewusbdev.sys"
File "Data\driver\WinVista64\ewusbmdm.sys"
File "Data\driver\WinVista64\ewusbnet.cat"
File "Data\driver\WinVista64\ewusbnet.sys"
SetOutPath "$INSTDIR\driver\WinXp"
File "Data\driver\WinXp\ewdcsc.cat"
File "Data\driver\WinXp\ewdcsc.inf"
File "Data\driver\WinXp\ewdcsc.sys"
File "Data\driver\WinXp\ewmdm2k.cat"
File "Data\driver\WinXp\ewmdm2k.inf"
File "Data\driver\WinXp\ewnet.inf"
File "Data\driver\WinXp\ewser2k.cat"
File "Data\driver\WinXp\ewser2k.inf"
File "Data\driver\WinXp\ewusbdev.cat"
File "Data\driver\WinXp\ewusbdev.inf"
File "Data\driver\WinXp\ewusbdev.sys"
File "Data\driver\WinXp\ewusbmdm.sys"
File "Data\driver\WinXp\ewusbnet.cat"
File "Data\driver\WinXp\ewusbnet.sys"
SetOutPath "$INSTDIR\"
File "Data\Exe Name.exe"
CreateDirectory "$SMPROGRAMS\Exe Name"
CreateShortCut "$SMPROGRAMS\Exe Name\Exe Name.lnk" "$INSTDIR\Exe Name.exe"
CreateShortCut "$DESKTOP\Exe Name.lnk" "$INSTDIR\Exe Name.exe"
File "Data\Exe Name.exe.manifest"
File "Data\InstallHelper.dll"
File "Data\license.rtf"
SetOutPath "$INSTDIR\res"
File "Data\res\BackGround.bmp"
File "Data\res\Exe Name.ico"
File "Data\res\LOGO.bmp"
SetOutPath "$INSTDIR\"
File "Data\SysConfig.dat"
File "Data\sysmagic.dat"
File "Data\sysresd.dat"
File "Data\XPStyle.exe.manifest"
File "Data\sysrest.dat"
ExecWait '"$INSTDIR\driver\DriverSetup.exe"'
SectionEnd
Section -AdditionalIcons
SetOutPath $INSTDIR
WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
CreateShortCut "$SMPROGRAMS\Exe Name\Uninstall.lnk" "$INSTDIR\uninst.exe"
SectionEnd
Section -Post
WriteUninstaller "$INSTDIR\uninst.exe"
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "${REG_VERSION_NUMBER}" "${HOST_VERSION_NUMBER}"
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "${REG_INSTALL_LOCAL}" "$INSTDIR"
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "${REG_EXE_PATH}" "$INSTDIR"
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "${REG_EXE_NAME}" "Exe Name.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}" "DisplayIcon" "$INSTDIR\res\Exe Name.ico"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${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
; Section descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SEC01} ""
!insertmacro MUI_FUNCTION_DESCRIPTION_END
Function un.onUninstSuccess
HideWindow
MessageBox MB_ICONINFORMATION|MB_OK "Partener FWT a fost eliminat cu succes."
FunctionEnd
Function un.onInit
; 标记卸载进程
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "FWT uninstall mutex") i .r1 ?e'
Pop $R0
StrCmp $R0 0 +2
Abort
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Sunt sigur că doriţi să eliminaţi Partener FWT" IDYES +2
Abort
FunctionEnd
Section Uninstall
ExecWait '"$INSTDIR\driver\DriverUninstall.exe"'
Delete "$INSTDIR\${PRODUCT_NAME}.url"
Delete "$INSTDIR\uninst.exe"
Delete "$INSTDIR\sysrest.dat"
Delete "$INSTDIR\sysresd.dat"
Delete "$INSTDIR\sysmagic.dat"
Delete "$INSTDIR\SysConfig.dat"
Delete "$INSTDIR\res\LOGO.bmp"
Delete "$INSTDIR\res\Exe Name.rc2"
Delete "$INSTDIR\res\Exe Name.ico"
Delete "$INSTDIR\res\BackGround.bmp"
Delete "$INSTDIR\license.rtf"
Delete "$INSTDIR\InstallHelper.dll"
Delete "$INSTDIR\Exe Name.exe.manifest"
Delete "$INSTDIR\Exe Name.exe"
Delete "$INSTDIR\driver\WinXp\ewusbnet.sys"
Delete "$INSTDIR\driver\WinXp\ewusbnet.cat"
Delete "$INSTDIR\driver\WinXp\ewusbmdm.sys"
Delete "$INSTDIR\driver\WinXp\ewusbdev.sys"
Delete "$INSTDIR\driver\WinXp\ewusbdev.inf"
Delete "$INSTDIR\driver\WinXp\ewusbdev.cat"
Delete "$INSTDIR\driver\WinXp\ewser2k.inf"
Delete "$INSTDIR\driver\WinXp\ewser2k.cat"
Delete "$INSTDIR\driver\WinXp\ewnet.inf"
Delete "$INSTDIR\driver\WinXp\ewmdm2k.inf"
Delete "$INSTDIR\driver\WinXp\ewmdm2k.cat"
Delete "$INSTDIR\driver\WinXp\ewdcsc.sys"
Delete "$INSTDIR\driver\WinXp\ewdcsc.inf"
Delete "$INSTDIR\driver\WinXp\ewdcsc.cat"
Delete "$INSTDIR\driver\WinVista64\ewusbnet.sys"
Delete "$INSTDIR\driver\WinVista64\ewusbnet.cat"
Delete "$INSTDIR\driver\WinVista64\ewusbmdm.sys"
Delete "$INSTDIR\driver\WinVista64\ewusbdev.sys"
Delete "$INSTDIR\driver\WinVista64\ewusbdev.inf"
Delete "$INSTDIR\driver\WinVista64\ewusbdev.cat"
Delete "$INSTDIR\driver\WinVista64\ewser2k.inf"
Delete "$INSTDIR\driver\WinVista64\ewser2k.cat"
Delete "$INSTDIR\driver\WinVista64\ewnet.inf"
Delete "$INSTDIR\driver\WinVista64\ewmdm2k.inf"
Delete "$INSTDIR\driver\WinVista64\ewmdm2k.cat"
Delete "$INSTDIR\driver\WinVista64\ewdcsc.sys"
Delete "$INSTDIR\driver\WinVista64\ewdcsc.inf"
Delete "$INSTDIR\driver\WinVista64\ewdcsc.cat"
Delete "$INSTDIR\driver\WinVista\ewusbnet.sys"
Delete "$INSTDIR\driver\WinVista\ewusbnet.cat"
Delete "$INSTDIR\driver\WinVista\ewusbmdm.sys"
Delete "$INSTDIR\driver\WinVista\ewusbdev.sys"
Delete "$INSTDIR\driver\WinVista\ewusbdev.inf"
Delete "$INSTDIR\driver\WinVista\ewusbdev.cat"
Delete "$INSTDIR\driver\WinVista\ewser2k.inf"
Delete "$INSTDIR\driver\WinVista\ewser2k.cat"
Delete "$INSTDIR\driver\WinVista\ewnet.inf"
Delete "$INSTDIR\driver\WinVista\ewmdm2k.inf"
Delete "$INSTDIR\driver\WinVista\ewmdm2k.cat"
Delete "$INSTDIR\driver\WinVista\ewdcsc.sys"
Delete "$INSTDIR\driver\WinVista\ewdcsc.inf"
Delete "$INSTDIR\driver\WinVista\ewdcsc.cat"
Delete "$INSTDIR\driver\Win764\ewusbnet.sys"
Delete "$INSTDIR\driver\Win764\ewusbnet.cat"
Delete "$INSTDIR\driver\Win764\ewusbmdm.sys"
Delete "$INSTDIR\driver\Win764\ewusbdev.sys"
Delete "$INSTDIR\driver\Win764\ewusbdev.inf"
Delete "$INSTDIR\driver\Win764\ewusbdev.cat"
Delete "$INSTDIR\driver\Win764\ewser2k.inf"
Delete "$INSTDIR\driver\Win764\ewser2k.cat"
Delete "$INSTDIR\driver\Win764\ewnet.inf"
Delete "$INSTDIR\driver\Win764\ewmdm2k.inf"
Delete "$INSTDIR\driver\Win764\ewmdm2k.cat"
Delete "$INSTDIR\driver\Win764\ewdcsc.sys"
Delete "$INSTDIR\driver\Win764\ewdcsc.inf"
Delete "$INSTDIR\driver\Win764\ewdcsc.cat"
Delete "$INSTDIR\driver\Win7\ewusbnet.sys"
Delete "$INSTDIR\driver\Win7\ewusbnet.cat"
Delete "$INSTDIR\driver\Win7\ewusbmdm.sys"
Delete "$INSTDIR\driver\Win7\ewusbdev.sys"
Delete "$INSTDIR\driver\Win7\ewusbdev.inf"
Delete "$INSTDIR\driver\Win7\ewusbdev.cat"
Delete "$INSTDIR\driver\Win7\ewser2k.inf"
Delete "$INSTDIR\driver\Win7\ewser2k.cat"
Delete "$INSTDIR\driver\Win7\ewnet.inf"
Delete "$INSTDIR\driver\Win7\ewmdm2k.inf"
Delete "$INSTDIR\driver\Win7\ewmdm2k.cat"
Delete "$INSTDIR\driver\Win7\ewdcsc.sys"
Delete "$INSTDIR\driver\Win7\ewdcsc.inf"
Delete "$INSTDIR\driver\Win7\ewdcsc.cat"
Delete "$INSTDIR\driver\release notes.txt"
Delete "$INSTDIR\driver\ReadMe(en).txt"
Delete "$INSTDIR\driver\ReadMe(ch).txt"
Delete "$INSTDIR\driver\LocateDevice.dll"
Delete "$INSTDIR\driver\Install.log"
Delete "$INSTDIR\driver\DriverUninstall.exe"
Delete "$INSTDIR\driver\DriverSetup.exe"
Delete "$INSTDIR\driver\devsetup64.exe"
Delete "$INSTDIR\driver\devsetup32.exe"
Delete "$INSTDIR\driver\devsetup2k.exe"
Delete "$INSTDIR\driver\devsetup.exe"
Delete "$INSTDIR\driver\devsetup.dll"
Delete "$INSTDIR\DataCardInfo.ini"
Delete "$INSTDIR\XPStyle.exe.manifest"
Delete "$INSTDIR\sysrestforRus.dat"
Delete "$INSTDIR\sysrestforEn.dat"
Delete "$SMPROGRAMS\Exe Name\Uninstall.lnk"
Delete "$SMPROGRAMS\Exe Name\Website.lnk"
Delete "$DESKTOP\Exe Name.lnk"
Delete "$SMPROGRAMS\Exe Name\Exe Name.lnk"
Delete "$SMPROGRAMS\Exe Name"
RMDir "$INSTDIR\res"
RMDir "$INSTDIR\driver\WinXp"
RMDir "$INSTDIR\driver\WinVista64"
RMDir "$INSTDIR\driver\WinVista"
RMDir "$INSTDIR\driver\Win764"
RMDir "$INSTDIR\driver\Win7"
RMDir "$INSTDIR\driver"
RMDir "$INSTDIR"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
SetAutoClose true
SectionEnd
NSIS打包示例
最新推荐文章于 2022-09-26 22:09:27 发布