NSIS打包安装程序安装包实例

/**************************


 ËµÃ÷£ººóÃæ´ø#ºÅ˵Ã÷µÄ¶¼ÊDZØÐë¸Ä¶¯µÄ£¬Ò»¹²ÓÐ12´¦


 **************************/
 
 
; °²×°³ÌÐò³õʼ¶¨Òå³£Á¿
!define PRODUCT_NAME "Q7Reader"  /***¿ì½Ý·½Ê½Ä¿Â¼,×îºÃ²»Òª¸Ä£¬²»È»Òª°ÑÏ·½ËùÓгöÏÖµÄZYBIO¶¼ÒªÌæ»»³ÉÄã¸Ä³ÉµÄÃû³Æ******/
!define PRODUCT_VERSION "6.1.3"        /***Èí¼þ°æ±¾ºÅÐÅÏ¢,¿ÉÒÔÐ޸ģ¬Èç2.01******/
!define PRODUCT_PUBLISHER "ÖÐÔªÉúÎï."    /***¹«Ë¾Ãû³Æ******/
;!define PRODUCT_WEB_SITE "http://www.zy-biotech.com"   /***¹«Ë¾ÍøÖ·******/
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Q7Reader.exe"  #´Ë´¦Q7Reader.exeÒªÌæ»»³ÉÄãÒª´ò°üÈí¼þµÄÃû³Æ
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"


SetCompressor lzma




; ------ MUI ÏÖ´ú½çÃ涨Òå (1.67 °æ±¾ÒÔÉϼæÈÝ) ------
!include "MUI.nsh"
!include "WordFunc.nsh"


; MUI Ô¤¶¨Òå³£Á¿
!define MUI_ABORTWARNING
!define MUI_ICON "C:\Users\rd236.ZY-IVD\Desktop\Q7trunk\code\QtNewUI\ZybioQ7\zybioinstall.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"


; »¶Ó­Ò³Ãæ
!insertmacro MUI_PAGE_WELCOME
; °²×°Ä¿Â¼Ñ¡ÔñÒ³Ãæ
!insertmacro MUI_PAGE_DIRECTORY
; °²×°¹ý³ÌÒ³Ãæ
!insertmacro MUI_PAGE_INSTFILES
;--------------¿ª»ú×ÔÆô¶¯ -----------------------------
!define MUI_FINISHPAGE_SHOWREADME
!define MUI_FINISHPAGE_SHOWREADME_Function AutoBoot
!define MUI_FINISHPAGE_SHOWREADME_TEXT "¿ª»ú×ÔÆô¶¯"
;-------------- -----------------------------------------
!insertmacro MUI_PAGE_FINISH


; °²×°Ð¶Ôعý³ÌÒ³Ãæ
!insertmacro MUI_UNPAGE_INSTFILES


; °²×°½çÃæ°üº¬µÄÓïÑÔÉèÖÃ
!insertmacro MUI_LANGUAGE "SimpChinese"


; °²×°Ô¤ÊÍ·ÅÎļþ
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
; ------ MUI ÏÖ´ú½çÃ涨Òå½áÊø ------


Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "Q7ReaderInstaller_V6.1.3_B4330.exe"    #°²×°°üÃû³Æ,´Ë´¦Q7ReaderInstallerÒªÌæ»»³ÉÄãÒª´ò°üÈí¼þµÄÃû³Æ xxxInstaller£¬Ðè°üº¬Êä³öµÄ°æ±¾ºÅ
InstallDir "C:\Q7ReaderInstaller"
InstallDirRegKey HKLM "${PRODUCT_UNINST_KEY}" "UninstallString"
ShowInstDetails show
ShowUnInstDetails show
;--------ÒÔ¹ÜÀíÔ±ÔËÐа²×°Èí¼þ----------------
RequestExecutionLevel admin


Section "MainSection" SEC01
  SetOutPath $INSTDIR
  SetOverwrite ifnewer
  File /r "Q7ReaderInstaller\*.*"  #´ò°üÈí¼þԴĿ¼Îļþ¼ÐËùÔÚ¾ø¶Ô·¾¶ £¬°ÑG:\test\*.*Ìæ»»³ÉÒªÄãÒª´ò°üµÄÈí¼þԴĿ¼Îļþ¼ÐµÄ¾ø¶Ô·¾¶£¬ÇмÇÒªÔÚÍêÕû·¾¶ºóÃæ¼ÓÉÏ\*.*
SectionEnd


Section -AdditionalIcons
  SetOutPath "$INSTDIR\Q7ReaderRelease"      #É趨¿ì½Ý·½Ê½ÊôÐÔÀïµÄÆðʼλÖ÷¾¶£¬Èç¹ûȱÉÙ\Q7ReaderReleaseÕâ²ãĿ¼µÄ»°£¬Q7³ÌÐòÔËÐл᲻²úÉúlogÎļþ¡£Ó¦¸ÃÊÇ·¾¶µ¼ÖµÄȨÏÞÎÊÌâ¡£
  CreateDirectory "$SMPROGRAMS\Q7Reader"
  ;CreateShortCut "$SMPROGRAMS\Q7Reader\Uninstall.lnk" "$INSTDIR\uninst.exe"
  CreateShortCut "$SMPROGRAMS\Q7Reader\Q7Reader.lnk" "$INSTDIR\Q7ReaderRelease\Q7Reader.exe"  #Èí¼þ²Ëµ¥¿ì½Ý·½Ê½£¬´ËÁ½´¦Q7ReaderÒªÌæ»»³ÉÄãÒª´ò°üÈí¼þµÄÃû³Æ
  CreateShortCut "$SMPROGRAMS\Q7Reader\Uninstall.lnk" "$INSTDIR\uninst.exe"
  CreateShortCut "$DESKTOP\Q7Reader.lnk" "$INSTDIR\Q7ReaderRelease\Q7Reader.exe"  #Èí¼þ×ÀÃæ¿ì½Ý·½Ê½£¬´ËÁ½´¦Q7ReaderÒªÌæ»»³ÉÄãÒª´ò°üÈí¼þµÄÃû³Æ
SectionEnd


Section -Post
  WriteUninstaller "$INSTDIR\uninst.exe"
  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\Q7ReaderRelease\Q7Reader.exe"  #´Ë´¦Q7ReaderÒªÌæ»»³ÉÄãÒª´ò°üÈí¼þµÄÃû³Æ
  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\Q7ReaderRelease\Q7Reader.exe"
  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 Uninstall
  Delete "$INSTDIR\uninst.exe"
  Delete "$INSTDIR\Example.file"
  Delete "$INSTDIR\Q7ReaderRelease\Q7Reader.exe"   #´Ë´¦Q7ReaderÒªÌæ»»³ÉÄãÒª´ò°üÈí¼þµÄÃû


  Delete "$SMPROGRAMS\Q7Reader\Uninstall.lnk"
  Delete "$DESKTOP.lnk"
  Delete "$DESKTOP\Q7Reader.lnk"    #´Ë´¦Q7ReaderÒªÌæ»»³ÉÄãÒª´ò°üÈí¼þµÄÃû³Æ
  Delete "$SMPROGRAMS\Q7Reader\Q7Reader.lnk"    #´Ë´¦Q7ReaderÒªÌæ»»³ÉÄãÒª´ò°üÈí¼þµÄÃû³Æ
  Delete "$APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\Q7Reader.lnk"     # ɾȥ¿ª»ú×Ô¶¯Ä¿Â¼ÏµĿì½Ý·½Ê½


  RMDir "$SMPROGRAMS\Q7Reader"
  RMDir ""


  RMDir /r "$INSTDIR\*.*"


  RMDir "$INSTDIR"


  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
  
  #жÔØʱ½«ZbarµÄ»·¾³±äÁ¿Ò²×Ô¶¯Ð¶Ôصô
;  ReadRegStr $R0 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path"
;  ${WordReplace} $R0 ";$PROGRAMFILES\ZBar\bin" "" "+" $R1
;  MessageBox MB_OK '$R0 - $INSTDIR - $R1 '
;  WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path" "$R1"
  
  ;ɾ³ý¿ª»ú×ÔÆô
  ;DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Q7Reader"   #´Ë´¦Q7ReaderÒªÌæ»»³ÉÄãÒª´ò°üÈí¼þµÄÃû³Æ
  
  SetAutoClose true
SectionEnd


/*-- ¸ù¾Ý NSIS ½Å±¾±à¼­¹æÔò£¬ËùÓÐ Function Çø¶Î±ØÐë·ÅÖÃÔÚ Section Çø¶ÎÖ®ºó±àд£¬ÒÔ±ÜÃâ°²×°³ÌÐò³öÏÖδ¿ÉÔ¤ÖªµÄÎÊÌâ¡£--*/


Function un.onInit


  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "ÄúȷʵҪÍêÈ«ÒƳý $(^Name) £¬¼°ÆäËùÓеÄ×é¼þ£¿" IDYES +2
  Abort
FunctionEnd


Function un.onUninstSuccess
  HideWindow
  MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) Òѳɹ¦µØ´ÓÄúµÄ¼ÆËã»úÒƳý¡£"
FunctionEnd
;-------------дÈë×¢²á±í-----------------
Function AutoBoot
  #WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Q7Reader" "$INSTDIR\Q7ReaderRelease\Q7Reader.exe"  #´ËÁ½´¦Q7ReaderÒªÌæ»»³ÉÄãÒª´ò°üÈí¼þµÄÃû³Æ
  CreateShortCut "$APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\Q7Reader.lnk" "$INSTDIR\Q7ReaderRelease\Q7Reader.exe"  #Èí¼þ×ÀÃæ¿ì½Ý·½Ê½£¬´ËÁ½´¦Q7ReaderÒªÌæ»»³ÉÄãÒª´ò°üÈí¼þµÄÃû³Æ
  #MessageBox MB_OK $APPDATA
FunctionEnd
;--------------µ÷ÓõÚÈý·½°²×°°ü¹¦ÄÜ
Function .onInstSuccess
  ExecWait "$INSTDIR\vc_redist_vs2015\vc_redist.x86.exe"
  ExecWait "$INSTDIR\third-party\CP210x_Windows_Drivers\CP210xVCPInstaller_x64.exe"   ;x64->x86
  ;ExecWait "$INSTDIR\third-party\ImageMagick\ImageMagick-7.0.3-8-Q16-x86-dll.exe"
  ExecWait "$INSTDIR\third-party\zbar\zbar-0.10-setup.exe" $2
  ;1- δ°²×°   0-Zbar°²×°³É¹¦
  #MessageBox MB_OK $2  °²×°³É¹¦²¢¼ì²é×¢²á±íÊÇ·ñ´æÔÚ£¬²»´æÔÚ²Åдע²á±í
  ${If} $2 == 0
      ReadRegStr $0 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path"
      ${WordFind3X} $0 ";" "$PROGRAMFILES\ZBar\bi" "n" -1  $3
      ;MessageBox MB_OK $3
      ;MessageBox MB_OK $PROGRAMFILES
      ${If} $3 != "$PROGRAMFILES\ZBar\bi"
         WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path" "$0;$PROGRAMFILES\ZBar\bin" /*Ìí¼Ó»·¾³±äÁ¿·½·¨£¬Ö»ÐèÒªÌæ»»C:\Program Files(x86)\ZBar\Bin¾Í¿ÉÒÔÁË*/
         SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment"  ;ˢл·¾³±äÁ¿
      ${EndIf}
  ${EndIf}
  
  ExecWait "$INSTDIR\third-party\POSPrinterDriverSetup.exe"
  ExecWait "$INSTDIR\third-party\lan9500_all.exe"
  ExecWait "$INSTDIR\third-party\021216_7N1_Plustek_OpticSlim_550_Plus_V6010_CMA1981_TwainNoDialog\setup.exe"
  
FunctionEnd
;-----------°²×°Íê³Éºó×Ô¶¯ÔËÐгÌÐò
Function .onGUIEnd
  ExecWait "$INSTDIR\Q7ReaderRelease\Q7Reader.exe"   #´Ë´¦Q7ReaderÒªÌæ»»³ÉÄãÒª´ò°üÈí¼þµÄÃû³Æ
FunctionEnd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值