livesetup.nsi 6.6 KB
var pdtname
var pdtbrand
var pdtcompany

!include "StrFunc.nsh"
# Declare used functions
${StrRep}

;--------------------------------
;Include Modern UI

!define PRODUCT_APP_PATH    "Software\3mlive\client"
!define PRODUCT_NAME    	$pdtname
!define PRODUCT_VERSION 	"4.0.0"
!define PRODUCT_UNINST_KEY 	"Software\Microsoft\Windows\CurrentVersion\Uninstall\3mlive"
!include "MUI.nsh"

;--------------------------------
;General


  ;Name and file
  RequestExecutionLevel admin /* RequestExecutionLevel REQUIRED! */
  
  Name $pdtname
  
  OutFile "livesetup.exe"
  BrandingText $pdtbrand
  ;Default installation folder
  
  ;==================================
  ; get app_dir

;--------------------------------
;Interface Configuration
	; MUI pre-defined const
	!define MUI_ABORTWARNING
	;modify icon
	!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\orange-install.ico"
	!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall.ico"
	;modify left image
	!define MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\orange.bmp"
	!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\orange-uninstall.bmp"
	;modify Head image
	!define MUI_HEADERIMAGE
	!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\orange.bmp"
	!define MUI_HEADERIMAGE_UNBITMAP "${NSISDIR}\Contrib\Graphics\Header\orange-uninstall.bmp"
	;modify title
	!define MUI_WELCOMEPAGE_TITLE "\r\n xuedianyun screensharing service V${PRODUCT_VERSION}"
	;modify welcome page text.
	!define MUI_WELCOMEPAGE_TEXT "   xuedianyun screensharing service\r\n\r\n  right:xuedianyun \r\n\r\n  $_CLICK"

	;modify completed page title
	!define MUI_FINISHPAGE_TITLE "\r\n xuedianyun screensharing service has installed."

  ;!define MUI_HEADERIMAGE
  ;!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" ; optional
  ;!define MUI_ABORTWARNING

;--------------------------------
;Pages
;Languages
  !insertmacro MUI_LANGUAGE "English" ;first language is the default language
  !insertmacro MUI_LANGUAGE "SimpChinese"
  !insertmacro MUI_LANGUAGE "TradChinese"

;  !insertmacro MUI_PAGE_LICENSE "License.txt"
;  !insertmacro MUI_PAGE_COMPONENTS
;  !insertmacro MUI_PAGE_DIRECTORY

;  !insertmacro MUI_PAGE_LICENSE $(MUILicense)
  !insertmacro MUI_PAGE_INSTFILES
  
  !insertmacro MUI_UNPAGE_CONFIRM
  !insertmacro MUI_UNPAGE_INSTFILES
  
;--------------------------------


;Reserve Files
!insertmacro MUI_RESERVEFILE_LANGDLL

;--------------------------------
;Installer Sections

Section "Dummy Section" SecDummy


  Var /GLOBAL os_ver
  Var /GLOBAL app_dir
  
  SetShellVarContext current
  
   Call GetWindowsVersion
   Pop $R0
   
   
  StrCpy $os_ver $R0
  
  ;MessageBox MB_OK $os_ver
  
  StrCpy $app_dir "$PROGRAMFILES"
  
  StrCmp $os_ver  "Vista" 0 VISTANEXT
      ${StrRep} $app_dir $app_dir "Program Files" "ProgramData"
  
  Goto +2
  VISTANEXT:
  StrCmp $os_ver  "win7" 0 WIN7NEXT
      ${StrRep} $app_dir $app_dir "Program Files" "ProgramData"
  
  Goto +2
  WIN7NEXT:
  StrCmp $os_ver  "win8" 0 WIN8NEXT
      ${StrRep} $app_dir $app_dir "Program Files" "ProgramData"
  
  Goto +2
  WIN8NEXT:
    
  CreateDirectory $app_dir\"3mlive\"
  
  SetOutPath $app_dir\"3mlive\"
  
  ExecWait '$app_dir\3mlive\livemgr.exe -uninstall'
  ExecWait '$app_dir\3mlive\audio_unreg.bat'
  ExecWait '$app_dir\3mlive\audio_unreg64.bat'
  
  ;ADD YOUR OWN FILES HERE...  
  File .\files\*.*
  
  ;Create uninstaller
  WriteUninstaller $app_dir\"3mlive\Uninstall.exe"
    
  ExecWait '$app_dir\3mlive\audio_reg.bat'
  ExecWait '$app_dir\3mlive\audio_reg64.bat'
  ExecWait '$app_dir\3mlive\livemgr.exe -install'
    
  WriteRegStr HKCU "${PRODUCT_APP_PATH}" "app_data_path" "$app_dir\3mlive\"

  WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME}"
  WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "UninstallString" "$app_dir\3mlive\uninstall.exe"
  WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "DisplayVersion" "3mlive"
  WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "www.3mang.com"
  WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "Publisher" "3mlive"

  ;Create shortcuts
  CreateDirectory "$SMPROGRAMS\3mlive"
  CreateShortCut "$SMPROGRAMS\3mlive\Uninstall.lnk" "$app_dir\3mlive\Uninstall.exe"
  
SectionEnd


Function .onInit

  
FunctionEnd

Function un.onInit


FunctionEnd


Function GetWindowsVersion

   Push $R0
   Push $R1
  
   ClearErrors
  
   ReadRegStr $R0 HKLM \
   "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
  
   IfErrors 0 lbl_winnt
  
   ; we are not NT
   ReadRegStr $R0 HKLM \
   "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
  
   StrCpy $R1 $R0 1
   StrCmp $R1 '4' 0 lbl_error

   StrCpy $R1 $R0 3

   StrCmp $R1 '4.0' lbl_win32_95
   StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
  
   lbl_win32_95:
     StrCpy $R0 '95'
   Goto lbl_done

   lbl_win32_98:
     StrCpy $R0 '98'
   Goto lbl_done

   lbl_win32_ME:
     StrCpy $R0 'ME'
   Goto lbl_done
  
   lbl_winnt:
  
   StrCpy $R1 $R0 1

   StrCmp $R1 '3' lbl_winnt_x
   StrCmp $R1 '4' lbl_winnt_x

   StrCpy $R1 $R0 3

   StrCmp $R1 '5.0' lbl_winnt_2000
   StrCmp $R1 '5.1' lbl_winnt_XP
   StrCmp $R1 '5.2' lbl_winnt_2003
   StrCmp $R1 '6.1' lbl_win7
   StrCmp $R1 '6.2' lbl_win8
   StrCmp $R1 '6.3' lbl_win81
   StrCmp $R1 '6.0' lbl_winnt_vista lbl_error

   lbl_winnt_x:
     StrCpy $R0 "NT $R0" 6
   Goto lbl_done

   lbl_winnt_2000:
     StrCpy $R0 '2000'
   Goto lbl_done

   lbl_winnt_XP:
     StrCpy $R0 'XP'
   Goto lbl_done

   lbl_winnt_2003:
     StrCpy $R0 '2003'
   Goto lbl_done

   lbl_win7:
     StrCpy $R0 'win7'
   Goto lbl_done

   lbl_win8:
     StrCpy $R0 'win8'
   Goto lbl_done

   lbl_win81:
     StrCpy $R0 'win8'
   Goto lbl_done

   lbl_winnt_vista:
     StrCpy $R0 'Vista'
   Goto lbl_done

   lbl_error:
     StrCpy $R0 ''
   lbl_done:
  
   Pop $R1
   Exch $R0

 FunctionEnd


;--------------------------------
;Descriptions

  ;Language strings
  LangString DESC_SecDummy ${LANG_ENGLISH} "A test section."

  ;Assign language strings to sections
  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
    !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy)
  !insertmacro MUI_FUNCTION_DESCRIPTION_END

;--------------------------------
;Uninstaller Section
Section "Uninstall"


  RMDir /r  $INSTDIR
  Delete $INSTDIR\Uninstall.exe

  Delete "$SMPROGRAMS\3mlive\Uninstall.lnk"
  RMDir "$SMPROGRAMS\3mlive"

  DeleteRegKey HKLM "${PRODUCT_UNINST_KEY}"

SectionEnd