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