One click installers
-
Does anybody here have experience with one click installers like the ones that are used in theatres? The reason I am aksing is that I’m working on my latest version of Korea 2012/Eurowar. Unfortunately, I am using a mix of a single click installer, hotfixes and seperate folders. I’d like to combine everything into a single one-click installer that is quick, easy to use and painless. If you can help, please pm or post, I am all ears.
-
Hi, for my installers i use Inno Setup and i can give you a little help to auto find the BMS setup.
I’ll give that little code tonight because i’m at workCya
-
Bulldog once told me about one that is free and uses scripts and u can do magic with it… but I can’t recall it’s name right now…
OF installers was made with it… IIRC. -
Hi again
here the code i use for Inno Setup (download Inno Setup Compiler)
[Setup] AppId=you need to generate an AppID with the Compiler (Ctrl+Shift+G) AppName=Program name here AppVersion=Program version here AppVerName=Program name + version here DefaultDirName={reg:HKLM\SOFTWARE\Benchmark Sims\Falcon BMS 4.32,baseDir} DefaultGroupName= DisableProgramGroupPage=yes OutputDir=compiler:skin\Renegade Viper Component F-16C Skin Setup OutputBaseFilename=output file name here Compression=lzma2/ultra64 SolidCompression=yes DisableWelcomePage=no UserInfoPage=yes [Languages] Name: "english"; MessagesFile: "compiler:Default.isl" Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl" Name: "french"; MessagesFile: "compiler:Languages\French.isl" Name: "german"; MessagesFile: "compiler:Languages\German.isl" [Files] Source: path to folder to use for the installer\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs [Run] Filename: "{app}\Launcher.exe"; Description: "{cm:LaunchProgram,Falcon BMS}"; Flags: nowait postinstall skipifsilent
I hope it helps, change the value with yours
-
Found it
NSIS and don’t forget it’s plugins. there is one that provides a user interface that makes things easier for simple installations… for advanced use both thus create the simple stuff first than write the script…
-
Thanks Arty, i will take a look at that too. By the way, do you have any experience with NSIS?
-
Thanks Arty, i will take a look at that too. By the way, do you have any experience with NSIS?
very basic… and I don’t want to get back to it… it’s a head bang app… Very serious very pro… maybe very complicated for simple things, but as I understood it u can have full control of every aspect… and do real magic… Big long learning curve I would say. Don’t know if there is a newer plugin with full GUI support…
-
In F4Spain use NIS for POH edit:
Our code is in the last Annex Theater User Manual 0.6.0 POH.
Our code INSTALLER:
;Optimized by Joe Labrada installer of F4Spain for BMS ;More information on the forums Escuadron111: www.escuadron111.com ;V.72.0 ;______ ___ ______ ___ ___ ________ _____ ___________ _____ ;| ___ \/ _ \| ___ \/ _ \| \/ | ___|_ _| ___| ___ | ___| ;| |_/ / /_\ \ |_/ / /_\ \ . . | |__ | | | |__ | |_/ | `--. ;| __/| _ | /| _ | |\/| | __| | | | __|| / `--. \ ;| | | | | | |\ \| | | | | | | |___ | | | |___| |\ \/\__/ / ;\_| \_| |_|_| \_\_| |_|_| |_|____/ \_/ \____/\_| \_\____/ !define TNAME "POH" !define APP_NAME "Pillars of Hercules Theater" !define APP "POHInstalador" ;for some reason, this has to be #.#.#.# but I usually change the name after I build the exe !define VER "0.6.0.0" !define INSTDIR_REG_ROOT "HKLM" !define INSTDIR_REG_KEY "Software\Microsoft\Windows\Currentversion\Uninstall\${APP_NAME}" !define CancelEnabled=0 ;MUY IMPORTANTE!! Este BMSVERSION es el nombre de la entrada de registro de Falcon que encontramos en la ruta: $INSTDIR HKLM "Software\Benchmark Sims\${BMSVERSION}\" "basedir" ;En posteriores veriones de BMS si cambia la ruta deberemos cambiar esta definición. !define BMSVERSION "Falcon BMS 4.32" XPStyle on !define MUI_CUSTOMFUNCTION_GUIINIT myGuiInit !macro GetReturnValue !ifdef DEBUG Pop $R9 StrCmp $R9 success +2 DetailPrint "Error: $R9" !endif !macroend ; define other variables to free up generic ones var F4ver var F4subver var F4Root ; these establish some things about the installer the most important one to me is the outfile Name "${APP_NAME}" ;;;;;;;;;;;;;; ;OUTFILE;;;;;; ;;;;;;;;;;;;;; ; outfile is the name of the installer. Unless otherwise set, it will be the same directory as where the script is OutFile "Installer_${APP_NAME} Beta ${VER}.exe" ;Cuando el instaldor sea muy grande y uses el ejecutable para iniciarlo y lo colocas en la carpeta DATA. ;OutFile "Installer.exe" Caption "${APP_NAME}" ; these VI definitions are what is displayed if you hover the mouse over the icon VIProductVersion "${VER}" VIAddVersionKey ProductName "${APP_NAME}" VIAddVersionKey Comments "Teatro de Operaciones ${TNAME} (${APP_NAME}) desarrollado por la comunidad." VIAddVersionKey LegalCopyright "F4Spain/Escuadron111/201 VFS-FALCÕES" VIAddVersionKey FileDescription "${APP_NAME}" VIAddVersionKey FileVersion "${VER}" VIAddVersionKey ProductVersion "${VER}" VIAddVersionKey InternalName "${APP_NAME}" ;=== Runtime Switches ; the CRC check is something I use on bigger installers to make sure everything checks out. CRCCheck On ; this makes it more efficient AutoCloseWindow True ; this is something I use to make sure it uses the LZMA compression, which I believe is the best SetCompressor lzma ; branding text is just something that's displayed at the bottom of the installer BrandingText "F4Spain/Escuadron111/201 VFS-FALCÕES" ;=== Includes - this will include the necessary dlls and functions that I use in the installer ; MUI 1.67 compatible ------ !include "MUI.nsh" !include "Registry.nsh" !include "WinMessages.nsh" !include "TextFunc.nsh" !include "Sections.nsh" ; MUI Settings - the MUI is the Modern UI for NSIS, this section defines its parameters (there are alot more that I don't use) !define MUI_ABORTWARNING !define MUI_INSTALLCOLORS /windows ;Aquí el icono usado para le instalador. !define MUI_ICON "H:\F4SPAIN\BETAS\BETA${VER}\ARCHIVOS_COMPILACION\ICONO\${TNAME}.ico" ShowInstDetails nevershow ;show InstallDir "$INSTDIR" InstallDirRegKey ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}" "InstallDir" ; Welcome page - this is the first page of the installer (I also have a snippet for a splashscreen, but we'll keep this simple) ;!define MUI_WELCOMEFINISHPAGE_BITMAP "@@:\FF4Installers\leftgraphic.bmp" ; using the variables means we don't have to remember to change all these when we use the template for another theater !define MUI_WELCOMEFINISHPAGE_BITMAP "H:\F4SPAIN\BETAS\BETA${VER}\ARCHIVOS_COMPILACION\imagenes\banner.bmp" ;IMAGEN 164X314 PX !define MUI_WELCOMEPAGE_TITLE "${APP_NAME} ${VER} Asistente de configuración" !define MUI_WELCOMEPAGE_TEXT "El configurador instalará ${APP_NAME} ${VER} en tu instalación de Falcon." !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "H:\F4SPAIN\BETAS\THEATERS\${TNAME}\EULA.txt" !define MUI_LICENSEPAGE_RADIOBUTTONS ; Instfiles page !define MUI_FINISHPAGE_NOAUTOCLOSE !insertmacro MUI_PAGE_INSTFILES ; Finish page - this is the last page people see !define MUI_FINISHPAGE_TITLE "${APP_NAME} ${VER} Instalación completada." !define MUI_FINISHPAGE_TEXT "Click en 'Terminar' para cerrar el asistente." !insertmacro MUI_PAGE_FINISH ; Language files !insertmacro MUI_LANGUAGE "Spanish" AddBrandingImage top 50 Function myGUIInit # the plugins dir is automatically deleted when the installer exits InitPluginsDir # lets extract some bitmaps... los bitmaps de 1600x 1200 para asegurar que ocupen toda la pantalla de cualquier monitor. File /oname=$PLUGINSDIR\L2sinBaZT.bmp "H:\F4SPAIN\BETAS\BETA${VER}\ARCHIVOS_COMPILACION\imagenes\screenshots\L2sinBaZT.bmp" ;IMPORTANTÍSIMA IMAGEN, se copia temporalmente en la carpeta TEMP. File /oname=$PLUGINSDIR\1.bmp "H:\F4SPAIN\BETAS\BETA${VER}\ARCHIVOS_COMPILACION\imagenes\screenshots\01.bmp" ;después se borra. Sirve para gestionar la selección del usuario de BaZT. Un poco chapucero pero funciona. File /oname=$PLUGINSDIR\2.bmp "H:\F4SPAIN\BETAS\BETA${VER}\ARCHIVOS_COMPILACION\imagenes\screenshots\02.bmp" File /oname=$PLUGINSDIR\3.bmp "H:\F4SPAIN\BETAS\BETA${VER}\ARCHIVOS_COMPILACION\imagenes\screenshots\03.bmp" File /oname=$PLUGINSDIR\4.bmp "H:\F4SPAIN\BETAS\BETA${VER}\ARCHIVOS_COMPILACION\imagenes\screenshots\04.bmp" File /oname=$PLUGINSDIR\5.bmp "H:\F4SPAIN\BETAS\BETA${VER}\ARCHIVOS_COMPILACION\imagenes\screenshots\05.bmp" File /oname=$PLUGINSDIR\6.bmp "H:\F4SPAIN\BETAS\BETA${VER}\ARCHIVOS_COMPILACION\imagenes\screenshots\06.bmp" File /oname=$PLUGINSDIR\7.bmp "H:\F4SPAIN\BETAS\BETA${VER}\ARCHIVOS_COMPILACION\imagenes\screenshots\07.bmp" !ifdef DEBUG # turn return values on if in debug mode BgImage::SetReturn /NOUNLOAD on !endif # set the initial background BgImage::SetBg /NOUNLOAD /FILLSCREEN $PLUGINSDIR\1.bmp !insertmacro GetReturnValue BgImage::Redraw /NOUNLOAD FunctionEnd ; _____ _ _ _____ _____ _____ ___ _____ _____ _____ _ _ ;|_ _| \ | |_ _|_ _|_ _|/ _ \_ _|_ _| _ | \ | | ; | | | \| | | | | | | | / /_\ \| | | | | | | | \| | ; | | | . ` | | | | | | | | _ || | | | | | | | . ` | ; _| |_| |\ |_| |_ | | _| |_| | | || | _| |_\ \_/ / |\ | ; \___/\_| \_/\___/ \_/ \___/\_| |_/\_/ \___/ \___/\_| \_/ ; now we're ready for the actual installer! Section "Pillars of Hercules Theater_v${VER}" SEC01 ;TIENE QUE SER ALARGADA. p.e.: 700x100 px LA IMAGEN SE ADAPTA SetBrandingImage /RESIZETOFIT "H:\F4SPAIN\BETAS\BETA${VER}\ARCHIVOS_COMPILACION\imagenes\bitmap.bmp" ;EL ICONO DEL INSTALADOR ;El icono lo pones en la carpeta del programa ;H:\F4SPAIN\BETAS\BETAx.x.x.x\ICONO ;Y les das el nombre: TNAME.ico,, siendo TNAME el parámetro definido en TNAME ;___ ________ _ _ _ _ _____ ;| \/ | ___| \ | | | | / ___| ;| . . | |__ | \| | | | \ `--. ;| |\/| | __|| . ` | | | |`--. \ ;| | | | |___| |\ | |_| /\__/ / ;\_| |_|____/\_| \_/\___/\____/ BMSFound: ReadRegStr $INSTDIR HKLM "Software\Benchmark Sims\${BMSVERSION}\" "basedir" ; if ReadRegStrthe file exists, go to next line (don't skip a line) if it doesn't, go to label "NoFileFound" IfFileExists $INSTDIR\Launcher.exe 0 NoFileFoundBMS Messagebox::show MB_DEFBUTTON2|MB_TOPMOST "" "" "POH ${VER} se instalará en tu instalación de BMS activa ¿Deseas continuar?" "Sí" "No" ; this places the response 1, 2, into $0 Pop $0 IntCmp $0 2 Cancel2 StrCpy $F4ver "F4" StrCpy $F4subver "BMS" IfFileExists "$INSTDIR\data\${TNAME}\POH.ico" 0 BMSInstall Goto TheaterFoundinBMS TheaterFoundinBMS: Messagebox::show MB_DEFBUTTON2|MB_TOPMOST "" "" "El teatro ${TNAME} ya está instalado en BMS. Te recomendamos que lo desinstales completamente antes de continuar(inicio>panel de control>agregar o quitar programas>.${APP_NAME}-BMS). También puedes ir a tu carpeta de Falcon>Theaters>POH y hacer click en Uninstall.exe. Una vez desinstalado recuerda reiniciar el sistema para completar el proceso." "Detener la instalación""Continuar la instalación" Pop $0 IntCmp $0 2 BMSInstall Goto Finish NoFileFoundBMS: Messagebox::show MB_DEFBUTTON2|MB_TOPMOST "" "" "No se ha detectado tu instalación del simulador. El Teatro es compatible únicamente con la versión de ${BMSVERSION}" "Reintentar" "Cancelar" Pop $0 IntCmp $0 2 Cancel Goto BMSFound BMSInstall: WriteRegStr HKLM SOFTWARE\${TNAME}-BMS "Install_Dir" "$INSTDIR\Data\${TNAME}" ReadRegStr $INSTDIR HKLM "SOFTWARE\${TNAME}-BMS" "Install_Dir" ReadRegStr $F4Root HKLM "Software\Benchmark Sims\Falcon BMS 4.32\" "basedir" StrCpy $1 "$F4Root\data\campaign\save" StrCpy $2 "$INSTDIR\utilidades\LxNormalFix.exe @${TNAME} @$INSTDIR\terrdata" StrCpy $3 "$F4Root\Data" ; Escribimos los registros de instalación dentro del directorio del registro WriteRegStr ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}-BMS" "InstallDir" "$INSTDIR" WriteRegStr ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}-BMS" "DisplayName" "${APP_NAME}-BMS" WriteRegStr ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}-BMS" "UninstallString" "$INSTDIR/uninstall-${TNAME}-BMS.exe" WriteRegStr ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}-BMS" "DisplayIcon" "$INSTDIR\${TNAME}.ico" WriteRegStr ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}-BMS" "Publisher" "F4Spain/Escuadron111/F4Portugal" WriteRegStr ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}-BMS" "HelpLink" "www.escuadron111.com" WriteRegStr ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}-BMS" "Comments" "Teatro para Falcon BMS de la Península Ibérica, Islas Baleares, Canarias, Azores y Norte de África" ;Para crear un enlace directo en el escritorio al Manual del usuario. MessageBox MB_YESNO "¿Desearás un enlace en el escritorio al Manual del usuario en castellano?" IDYES Enlace5BMS IDNO Ingles3BMS Enlace5BMS: SetOutPath "$INSTDIR" SetOverwrite ifnewer CreateShortCut "$DESKTOP\Manual del usuario ${APP_NAME}-BMS_sp.lnk" "$INSTDIR\Manuales\Manualdelusuario_sp.pdf" Ingles3BMS: MessageBox MB_YESNO "Do you want a link on the desktop to the user's manual in English?" IDYES Enlace5bisBMS IDNO Prefinish3BMS Enlace5bisBMS: SetOutPath "$INSTDIR" SetOverwrite ifnewer CreateShortCut "$DESKTOP\Manual del usuario ${APP_NAME}-BMS_en.lnk" "$INSTDIR\Manuales\Manualdelusuario_en.pdf" Prefinish3BMS: MessageBox MB_YESNO "¿Desearás un enlace en el escritorio al Desinstalador?" IDYES Enlace6BMS IDNO Splash3BMS Enlace6BMS: SetOutPath "$INSTDIR" SetOverwrite ifnewer CreateShortCut "$DESKTOP\Desinstalador ${APP_NAME}-BMS.lnk" "$INSTDIR\Uninstall-${TNAME}-BMS.exe" Splash3BMS: Delete "$TEMP\L2sinBaZT.bmp" Messagebox::show MB_DEFBUTTON2|MB_TOPMOST "" "" "¿Desearás que se instalen automáticamente las pantallas de LOADING y STAND BY? Se creará un backup de las originales. Al desinstalar el teatro se restituirá el backup automáticamente." "Instalación automática" "Instalación manual" Pop $0 IntCmp $0 2 Inicio3BMS Messagebox::show MB_DEFBUTTON2|MB_TOPMOST "" "" "Instalación de BMS en un paso.Un click y te olvidas. A partir de aquí, una vez se inicie la instalación aconsejamos no interrumpirla." "Instalar ${TNAME}" "Cancelar" Pop $0 IntCmp $0 2 cancelBMS Goto BMSwhitSPLASH Inicio3BMS: Messagebox::show MB_DEFBUTTON2|MB_TOPMOST "" "" "Instalación de BMS en un paso.Un click y te olvidas. A partir de aquí, una vez se inicie la instalación aconsejamos no interrumpirla." "Instalar ${TNAME}" "Cancelar" Pop $0 IntCmp $0 2 cancelBMS Goto BMSwithoutSPLASH CancelBMS: Delete "$DESKTOP\Manual del usuario ${APP_NAME}-BMS_sp.lnk" Delete "$DESKTOP\Manual del usuario ${APP_NAME}-BMS_en.lnk" Delete "$DESKTOP\Desinstalador ${APP_NAME}-BMS.lnk" Delete "$TEMP\L2sinBaZT.bmp" DeleteRegKey /ifempty ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}-BMS" DeleteRegKey /ifempty ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}" DeleteRegKey /ifempty ${INSTDIR_REG_ROOT} "SOFTWARE\${TNAME}-BMS" SetOutPath $INSTDIR RMDir /r $INSTDIR Goto Cancel ; _ _____ ___ ______ _____ _ _ _____ _____ ___________ _____ _____ _ _ _____ ;| | | _ |/ _ \| _ \_ _| \ | | __ \ / ___/ __ \ ___ \ ___| ___| \ | / ___| ;| | | | | / /_\ \ | | | | | | \| | | \/ \ `--.| / \/ |_/ / |__ | |__ | \| \ `--. ;| | | | | | _ | | | | | | | . ` | | __ `--. \ | | /| __|| __|| . ` |`--. \ ;| |____\ \_/ / | | | |/ / _| |_| |\ | |_\ \ /\__/ / \__/\ |\ \| |___| |___| |\ /\__/ / ;\_____/ \___/\_| |_/___/ \___/\_| \_/\____/ \____/ \____|_| \_\____/\____/\_| \_|____/ BMSwithoutSPLASH: SetOutPath $INSTDIR RMDir /r "$INSTDIR\Splash\Backupsplash\" goto InstallerPOH BMSwhitSPLASH: ; Con esto aseguramos no machacar los backups realizados en instalaciones pasadas interrumpidos o en reinstalaciones ;restauramos el backup y dejamos las cosas como estaban antes de realizar otro backup ;las especificamos y no usamos el *.* porque el usuario podría haber colocado otros archivos en esa carpeta CopyFiles "$F4root\data\art\splash\Backupsplash\Enter0_4x3.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter0_5x4.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter0_16x9.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter0_16x10.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter1_4x3.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter1_5x4.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter1_16x9.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter1_16x10.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter2_4x3.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter2_5x4.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter2_16x9.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter2_16x10.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter3_4x3.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter3_5x4.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter3_16x9.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter3_16x10.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter4_4x3.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter4_5x4.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter4_16x9.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Enter4_16x10.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Leave_4x3.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Leave_5x4.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Leave_16x9.jpg" "$F4root\data\art\splash\" CopyFiles "$F4root\data\art\splash\Backupsplash\Leave_16x10.jpg" "$F4root\data\art\splash\" ;Ahora realizamos el backup de la screen loading original ;las especificamos y no usamos el *.* porque el usuario podría haber colocado otros archivos en esa carpeta SetOutPath $F4Root IfFileExists "$F4root\art\splash\Backupsplash\Enter0_4x3.jpg" 0 +2 ;se comprueba que no haya ya un backup para evitar borrarlo goto InstallerPOH CreateDirectory "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter0_4x3.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter0_5x4.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter0_16x9.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter0_16x10.jpg " "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter1_4x3.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter1_5x4.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter1_16x9.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter1_16x10.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter2_4x3.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter2_5x4.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter2_16x9.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter2_16x10.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter3_4x3.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter3_5x4.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter3_16x9.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter3_16x10.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter4_4x3.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter4_5x4.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter4_16x9.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Enter4_16x10.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Leave_4x3.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Leave_5x4.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Leave_16x9.jpg" "$F4root\data\art\splash\Backupsplash" CopyFiles "$F4root\data\art\splash\Leave_16x10.jpg" "$F4root\data\art\splash\Backupsplash" ;Por último añadimos la screen loading de POH CopyFiles "$F4root\Theaters\${TNAME}\Splash\*.*" "$F4root\data\art\splash\" goto InstallerPOH ; _____ _ _ _____ _____ ___ _ _ ___________ ;|_ _| \ | / ___|_ _/ _ \| | | | | ___| ___ \ ; | | | \| \ `--. | |/ /_\ \ | | | | |__ | |_/ / ; | | | . ` |`--. \ | || _ | | | | | __|| / ; _| |_| |\ /\__/ / | || | | | |____| |____| |___| |\ \ ; \___/\_| \_|____/ \_/\_| |_|_____/\_____/\____/\_| \_| InstallerPOH: ;Este es el bloque que hay que añadir cada vez que quieras que aparezca una imagen durante la instalación BgImage::Clear /NOUNLOAD BgImage::SetBg /NOUNLOAD /FILLSCREEN $PLUGINSDIR\2.bmp !insertmacro GetReturnValue BgImage::Redraw /NOUNLOAD SetOutPath $F4Root CreateDirectory "$F4root\Data\${TNAME}\campaign\${TNAME}1" CreateDirectory "$F4root\Data\${TNAME}\campaign\${TNAME}2" CreateDirectory "$F4root\Data\${TNAME}\campaign\${TNAME}3" CreateDirectory "$F4root\Data\${TNAME}\terrdata\weather\" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;OJETOS PROPIOS DE POH. ACTIVAR ESTA LÍNEA CUANDO SE INCORPOREN OBJETOS PROPIOS EN LA CARPETA H:\F4SPAIN\BETAS\THEATERS\POH\objects\BMS\KoreaObj CreateDirectory "$F4root\Data\${TNAME}\objects\" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SetOutPath $INSTDIR CopyFiles /filesonly "$1\*.pri" "$INSTDIR\campaign\${TNAME}1\" CopyFiles /filesonly "$1\*.txt" "$INSTDIR\campaign\${TNAME}1\" CopyFiles /filesonly "$1\*.b" "$INSTDIR\campaign\${TNAME}1\" CopyFiles /filesonly "$1\*.db" "$INSTDIR\campaign\${TNAME}1\" CopyFiles /filesonly "$1\*.ia" "$INSTDIR\campaign\${TNAME}1\" CopyFiles /filesonly "$1\*.dfs" "$INSTDIR\campaign\${TNAME}1\" CopyFiles /filesonly "$1\*.gbd" "$INSTDIR\campaign\${TNAME}1\" CopyFiles /filesonly "$1\*.lst" "$INSTDIR\campaign\${TNAME}1\" CopyFiles /filesonly "$1\*.idx" "$INSTDIR\campaign\${TNAME}1\" CopyFiles /filesonly "$1\*.wch" "$INSTDIR\campaign\${TNAME}1\" CopyFiles /filesonly "$1\atc.ini" "$INSTDIR\campaign\${TNAME}1\" CopyFiles /filesonly "$1\falcon4.aii" "$INSTDIR\campaign\${TNAME}1\" CopyFiles /filesonly "$1\falcon4.rt" "$INSTDIR\campaign\${TNAME}1\" CopyFiles /filesonly "$1\falcon4.tt" "$INSTDIR\campaign\${TNAME}1\" CopyFiles /filesonly "$1\validac.*" "$INSTDIR\campaign\${TNAME}1\" ; database objects (same dir for all versions) ; this needs to be recursively because RV has koreaobj subdir. SetOutPath $3 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;OJETOS PROPIOS DE POH. ACTIVAR ESTA LÍNEA CUANDO SE INCORPOREN OBJETOS PROPIOS EN LA CARPETA H:\F4SPAIN\BETAS\THEATERS\POH\objects\BMS\KoreaObj CopyFiles "$3\terrdata\objects\*.*" "$INSTDIR\objects\" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; CopyFiles "$3\terrdata\korea\weather\*.*" "$INSTDIR\terrdata\weather\" ;Este es el bloque que hay que añadir cada vez que quieras que aparezca una imagen durante la instalación BgImage::Clear /NOUNLOAD BgImage::SetBg /NOUNLOAD /FILLSCREEN $PLUGINSDIR\3.bmp !insertmacro GetReturnValue BgImage::Redraw /NOUNLOAD ; then copy it to the two another campaign dirs SetOutPath $INSTDIR CopyFiles /filesonly "$INSTDIR\campaign\${TNAME}1\*.*" "$INSTDIR\campaign\${TNAME}2\" CopyFiles /filesonly "$INSTDIR\campaign\${TNAME}1\*.*" "$INSTDIR\campaign\${TNAME}3\" SetOutPath $3 CopyFiles "$3\terrdata\korea\weather\*.*" "$INSTDIR\terrdata\weather\" SetOutPath $INSTDIR ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;CARPETA DE NUESTRO PC DONDE ESTÁN LOS ARCHIVOS DEL TEATRO File /r "H:\F4SPAIN\BETAS\THEATERS\${TNAME}\*.*" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Este es el bloque que hay que añadir cada vez que quieras que aparezca una imagen durante la instalación BgImage::Clear /NOUNLOAD BgImage::SetBg /NOUNLOAD /FILLSCREEN $PLUGINSDIR\4.bmp !insertmacro GetReturnValue BgImage::Redraw /NOUNLOAD ;CAMPAIGN files SetOutPath $INSTDIR CopyFiles /filesonly "$INSTDIR\campaign\common\*.*" "$INSTDIR\campaign\${TNAME}1\" CopyFiles /filesonly "$INSTDIR\campaign\common\*.*" "$INSTDIR\campaign\${TNAME}2\" CopyFiles /filesonly "$INSTDIR\campaign\common\*.*" "$INSTDIR\campaign\${TNAME}3\" CopyFiles "$INSTDIR\campaign\POH\*.*" "$INSTDIR\campaign\" ;OBJECTS files ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;OJETOS PROPIOS DE POH. ACTIVAR ESTA LÍNEA CUANDO SE INCORPOREN OBJETOS PROPIOS EN LA CARPETA H:\F4SPAIN\BETAS\THEATERS\POH\objects\BMS\KoreaObj CopyFiles "$INSTDIR\objects\POH\*.*" "$INSTDIR\objects\" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; _ _ _____ _____ _ _____ _____ _____ _____ _____ ;| | | |_ _|_ _| | |_ _|_ _|_ _| ___/ ___| ;| | | | | | | | | | | | | | | | | |__ \ `--. ;| | | | | | | | | | | | | | | | | __| `--. \ ;| |_| | | | _| |_| |_____| |_ | | _| |_| |___/\__/ / ; \___/ \_/ \___/\_____/\___/ \_/ \___/\____/\____/ ;Se usa lstMod para introducir las líneas en el el archivo theater.lst SetOutPath $F4Root ; plus additional two lstupdate entries ;campaña 1 obligatoria ExecWait '"$F4Root\Data\${TNAME}\Utilidades\lstMod_1.1_Monster.exe" "$F4Root\Data\Terrdata\theaterdefinition\theater.lst" "${TNAME}\theaterdefinition\${TNAME}1.tdf"' ;campaña 2 (activa o desactiva la línea si está presente o no) ;ExecWait '"$F4Root\Data\${TNAME}\Utilidades\lstMod_1.1_Monster.exe" "$F4Root\Data\Terrdata\theaterdefinition\theater.lst" "${TNAME}\theaterdefinition\${TNAME}2.tdf"' ;campaña 3 (activa o desactiva la línea si está presente o no) ;ExecWait '"$F4Root\Data\${TNAME}\Utilidades\lstMod_1.1_Monster.exe" "$F4Root\Data\Terrdata\theaterdefinition\theater.lst" "${TNAME}\theaterdefinition\${TNAME}3.tdf"' ;______ _____ _ _____ _____ _____ _ _ _____ ______ _____ _ _____ _____ ;| _ \ ___| | | ___|_ _|_ _| \ | | __ \ | ___|_ _| | | ___/ ___| ;| | | | |__ | | | |__ | | | | | \| | | \/ | |_ | | | | | |__ \ `--. ;| | | | __|| | | __| | | | | | . ` | | __ | _| | | | | | __| `--. \ ;| |/ /| |___| |____| |___ | | _| |_| |\ | |_\ \ | | _| |_| |____| |___/\__/ / ;|___/ \____/\_____/\____/ \_/ \___/\_| \_/\____/ \_| \___/\_____/\____/\____/ ;Este es el bloque que hay que añadir cada vez que quieras que aparezca una imagen durante la instalación BgImage::Clear /NOUNLOAD BgImage::SetBg /NOUNLOAD /FILLSCREEN $PLUGINSDIR\5.bmp !insertmacro GetReturnValue BgImage::Redraw /NOUNLOAD SetOutPath $INSTDIR RMDir /r "$INSTDIR\objects\POH\" RMDir /r "$INSTDIR\campaign\POH\" RMDir /r "$INSTDIR\campaign\common\" ; _____ ______________ ________ _ _ ___ _____ _____ _____ _ _ ;|_ _| ___| ___ \ \/ |_ _| \ | |/ _ \_ _|_ _| _ | \ | | ; | | | |__ | |_/ / . . | | | | \| / /_\ \| | | | | | | | \| | ; | | | __|| /| |\/| | | | | . ` | _ || | | | | | | | . ` | ; | | | |___| |\ \| | | |_| |_| |\ | | | || | _| |_\ \_/ / |\ | ; \_/ \____/\_| \_\_| |_/\___/\_| \_|_| |_/\_/ \___/ \___/\_| \_/ ;Este es el bloque que hay que añadir cada vez que quieras que aparezca una imagen durante la instalación BgImage::Clear /NOUNLOAD BgImage::SetBg /NOUNLOAD /FILLSCREEN $PLUGINSDIR\7.bmp !insertmacro GetReturnValue BgImage::Redraw /NOUNLOAD ;MENSAJE FINAL: Messagebox::show MB_DEFBUTTON1|MB_TOPMOST "" "" "¡Albricias y jolgorios! La instalación de ${APP_NAME} ${VER} se ha completado satisfactoriamente." "Ok" StrCmp $F4ver "F4" Finish Cancel: ;este cancel pasa previamente por el borrado de los archivos iniciales de la instalación. ;la instalación ha sido cancelada en un punto bastante avanzado y a estas alturas el usuario lo que ;no desea es instalar ese teatro en la versión de Falcon que sea. Se cancela y el teatro se desinstala Messagebox::show MB_DEFBUTTON1|MB_TOPMOST "" "" "Instalación de ${TNAME} cancelada por el usuario. Cualquier rastro de la instalación iniciada ha sido eliminado sin afectar al simulador" "Ok" Goto Finish Cancel2: ;este cancel no pasa previamente por el borrado de los archivos iniciales de la instalacíon. ;El caso típico sería: Ya hemos instalado el teatro en BMS y por lo que sea reiniciamos la instalación, pero nos equivocamos y cancelamos. ;Se cancela y ya está sin que la instalación existente de BMS se vea afectada. Messagebox::show MB_DEFBUTTON1|MB_TOPMOST "" "" "Instalación de ${TNAME} cancelada por el usuario." "Ok" Goto Finish Finish: SectionEnd Function .onGUIEnd # Destroy must not have /NOUNLOAD so NSIS will be able to unload # and delete BgImage before it exits BgImage::Destroy # Destroy doesn't return any value FunctionEnd
UNISTALLER:
;Optimized by Joe Labrada installer of F4Spain for BMS ;More information on the forums Escuadron111: www.escuadron111.com ;______ ___ ______ ___ ___ ________ _____ ___________ _____ ;| ___ \/ _ \| ___ \/ _ \| \/ | ___|_ _| ___| ___ | ___| ;| |_/ / /_\ \ |_/ / /_\ \ . . | |__ | | | |__ | |_/ | `--. ;| __/| _ | /| _ | |\/| | __| | | | __|| / `--. \ ;| | | | | | |\ \| | | | | | | |___ | | | |___| |\ \/\__/ / ;\_| \_| |_|_| \_\_| |_|_| |_|____/ \_/ \____/\_| \_\____/ ;NOTA: este desinstalador hay que colocarlo en la raíz de la carpeta del teatro !define TNAME "POH" !define APP_NAME "Pillars of Hercules Theater" !define INSTDIR_REG_ROOT "HKLM" !define INSTDIR_REG_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}" !define VERFALCON "BMS" !define F4ver "F4" ;es para lstupdate. sólo puede ser "AF" o "F4" !define VER "0.7.0.0" !define MUI_ICON "H:\F4SPAIN\BETAS\BETA${VER}\ARCHIVOS_COMPILACION\ICONO\${TNAME}.ico" !include "MUI.nsh" !insertmacro MUI_LANGUAGE "Spanish" ; branding text is just something that's displayed at the bottom of the installer BrandingText "F4Spain/Escuadron111/201 VFS-FALCÕES" Name "${APP_NAME}" ; outfile is the name of the installer. Unless otherwise set, it will be the same directory as where the script is OutFile "Uninstall-${TNAME}-${VERFALCON}.exe" ShowInstDetails nevershow var F4Root ; _ _ _ _ _____ _ _ _____ _____ ___ _ _ ;| | | | \ | |_ _| \ | / ___|_ _/ _ \| | | | ;| | | | \| | | | | \| \ `--. | |/ /_\ \ | | | ;| | | | . ` | | | | . ` |`--. \ | || _ | | | | ;| |_| | |\ |_| |_| |\ /\__/ / | || | | | |____| |____ ; \___/\_| \_/\___/\_| \_|____/ \_/\_| |_|_____/\_____/ Section Desinstalador Messagebox::show MB_DEFBUTTON2|MB_TOPMOST "" "" "¿Deseas desinstalar ${APP_NAME} de Falcon ${VERFALCON}? " "Sí" "No" Pop $0 IntCmp $0 2 No ReadRegStr $INSTDIR HKLM "Software\Benchmark Sims\Falcon BMS 4.32" "basedir" ; if ReadRegStrthe file exists, go to next line (don't skip a line) if it doesn't, go to label "NoFileFound" IfFileExists $INSTDIR\Launcher.exe 0 NoFileFound${VERFALCON} ReadRegStr $F4Root HKLM "Software\Benchmark Sims\Falcon BMS 4.32" "basedir" ReadRegStr $INSTDIR HKLM "SOFTWARE\${TNAME}-${VERFALCON}" "Install_Dir" ;este es la entrada de registro del teatro IfFileExists $INSTDIR\POH.ico 0 +2 ;se comprueba que nuestro teatro esté presente Goto +5 Messagebox::show MB_DEFBUTTON2|MB_TOPMOST "" "" "${TNAME} no se ha detectado en Falcon ${VERFALCON}. Quizá queden algunos rastros rastros ¿Deseas eliminar completamente el Teatro ${TNAME} de Falcon ${VERFALCON} ?" "Sí" "No" Pop $0 IntCmp $0 2 No ;se borrará las entradas de registro, lo enlaces directos al escritorio y todos los ficheros de nuestro teatro. ;pero antes se ejecutará lstupdate para borrar las entradas de nuestro teatro en el archivo theaters.lst SetOutPath $F4Root ExecWait '"$F4Root\data\${TNAME}\utilidades\lstMod_1.1_Monster" -u "$F4Root\Data\Terrdata\theaterdefinition\theater.lst" "${TNAME}\theaterdefinition\${TNAME}1.tdf"' ExecWait '"$F4Root\data\${TNAME}\utilidades\lstMod_1.1_Monster" -u "$F4Root\Data\Terrdata\theaterdefinition\theater.lst" "${TNAME}\theaterdefinition\${TNAME}2.tdf"' ExecWait '"$F4Root\data\${TNAME}\utilidades\lstMod_1.1_Monster" -u "$F4Root\Data\Terrdata\theaterdefinition\theater.lst" "${TNAME}\theaterdefinition\${TNAME}3.tdf"' SetOutPath ..\ ;subimos un nivel para que al aplicar RMDir también borre la carpeta del teatro y no sólo su contenido. Me costó horas descubrir ésto ;-) CopyFiles "$F4root\data\art\splash\Backupsplash\*.*" "$F4root\data\art\splash\" RMDir /r "$F4Root\data\art\splash\Backupsplash\" Delete "$DESKTOP\Manual del usuario ${APP_NAME}-${VERFALCON}_sp.lnk" Delete "$DESKTOP\Manual del usuario ${APP_NAME}-${VERFALCON}_en.lnk" Delete "$DESKTOP\Desinstalador ${APP_NAME}-${VERFALCON}.lnk" DeleteRegKey /ifempty ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}-${VERFALCON}" DeleteRegKey /ifempty ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}" DeleteRegKey /ifempty ${INSTDIR_REG_ROOT} "SOFTWARE\${TNAME}-${VERFALCON}" WriteRegStr HKLM "Software\Benchmark Sims\Falcon BMS 4.32" "curTheater" "korea" RMDir /REBOOTOK /r "$INSTDIR\" MessageBox MB_YESNO|MB_ICONQUESTION "Para completar la desinstalación de ${TNAME} de Falcon ${VERFALCON} es necesario reiniciar. Si vas a realizar una reinstalación del teatro en esta misma versión de Falcon fundamental que reinicies si no se borrarán archivos de la nueva instalación ¿Deseas hacerlo ahora?" IDNO +2 Reboot Goto Finish ; _____ ______________ ________ _ _ ___ _____ _____ _____ _ _ ;|_ _| ___| ___ \ \/ |_ _| \ | |/ _ \_ _|_ _| _ | \ | | ; | | | |__ | |_/ / . . | | | | \| / /_\ \| | | | | | | | \| | ; | | | __|| /| |\/| | | | | . ` | _ || | | | | | | | . ` | ; | | | |___| |\ \| | | |_| |_| |\ | | | || | _| |_\ \_/ / |\ | ; \_/ \____/\_| \_\_| |_/\___/\_| \_|_| |_/\_/ \___/ \___/\_| \_/ No: Messagebox::show MB_DEFBUTTON1|MB_TOPMOST "" "" "Desinstalación de ${TNAME} de Falcon ${VERFALCON} cancelada" "Ok" Goto Finish NoFileFound${VERFALCON}: Messagebox::show MB_DEFBUTTON1|MB_TOPMOST "" "" "No se ha detectado tu instalación de Falcon ${VERFALCON}. Comprueba que la tengas en estado activo" "Ok" Goto Finish Finish: Sectionend
HNIs version we use:
You can try our installer. Post discharge
-
Ah I can’t even run simple script to read BMS installDir from registry…
What am I missing?Name "Korea Training Theater v1.0" OutFile "Korea Training Theater v1.0.exe" RequestExecutionLevel admin Unicode True Page directory Page instfiles Section "" ReadRegStr $INSTDIR HKLM "SOFTWARE\WOW6432Node\Benchmark Sims\Falcon BMS 4.34" "baseDir" ; Set output path to the installation directory. SetOutPath "$INSTDIR" SectionEnd
-
Not a programmer, so expect this to be wrong,
Perhaps use “C:\Falcon BMS 4.34” instead of “baseDir” ?
-
Ah I can’t even run simple script to read BMS installDir from registry…
What am I missing?ReadRegStr $INSTDIR "HKLM\SOFTWARE\WOW6432Node\Benchmark Sims\Falcon BMS 4.34" "baseDir"
Maybe?
-
-
Not a programmer, so expect this to be wrong,
Perhaps use “C:\Falcon BMS 4.34” instead of “baseDir” ?
No worries, bro!
“C:\Falcon BMS 4.34” is just some random location on the root drive… definitely do not want to use that one! The line he posted is a function to get data from the Windows Registry.Under the Registry Key “Falcon BMS 4.34”, the “baseDir” is a string value of the actual install location on that PC. In my case, on a drive with letter “N:/”. These are used to get local information before proceeding with the installer, and it absolutely must work otherwise the proper install location would be unknown.
reference: https://nsis.sourceforge.io/mediawiki/index.php?title=Reference/ReadRegStr&oldid=23613
I don’t see anything in the wiki much different from the example from the OP here which didn’t work.I also don’t see where the wiki describes 4 parameters which are not all present in the OP’s non-working example. (“got 3” ??) Everything seems fine…
He has all four: user_var(output) root_key sub_key name == 1($INSTDIR) 2(HKLM) 3(“SOFTWARE\WOW6432Node\Benchmark Sims\Falcon BMS 4.34”) 4(“baseDir”)
it’s a head bang app…
I think Arty said this well – this very first example shows it perfectly, right? Only difference I can see is the use of quotes around the path, and that is standard practice when a path contains space(s).
I’d be banging my head on something, for sure! Hope you find the culprit!!
-
Okay I could read the BMS install dir from reg using InstallDirRegKey.
Name "Korea Training Theater v1.0" OutFile "Korea Training Theater v1.0.exe" RequestExecutionLevel admin Unicode True InstallDirRegKey HKLM "SOFTWARE\WOW6432Node\Benchmark Sims\Falcon BMS 4.34" "baseDir" Page directory Page instfiles Section "Installer" ; Set output path to the installation directory. SetOutPath $INSTDIR\Data File /r "Add-On Korea Training" ClearErrors FileOpen $0 $INSTDIR\Data\TerrData\TheaterDefinition\theater.lst a IfErrors done FileSeek $0 0 END FileWrite $0 "$\r$\nAdd-On Korea Training\TerrData\TheaterDefinition\Korea Training.tdf" FileClose $0 done: SectionEnd
However next problem is NSIS has 2GB limitation and I need a plugin to compress over 2GB size theater.
https://nsis.sourceforge.io/WimImage_plug-in
And this plugin usage example is beyond my understanding….
-
Okay I just found NSISBI.
This allows compressing more than 2GB data.
https://sourceforge.net/projects/nsisbi/