I want to make a self extracting exe(abcdInstaller.exe), which runs another exe(AppInstaller.apk, this is installing abcd.apk on my pc). Below script works fine but when I run abcdInstaller.exe, it also extracts these two files on current directory(from where I'm running this exe) and runs the AppInstaller.exe.
But What I want, User just click on abcdInstaller.exe and abcdInstaller.exe will run AppInstaller.exe in background, which will do its work.
!include LogicLib.nsh
!include WinMessages.nsh
SilentInstall silent
RequestExecutionLevel user ;no elevation needed for this test
ShowInstDetails hide
# this will be the created executable archive
OutFile "abcdInstaller.exe"
InstallDir $EXEDIR
# the executable part
Section
# define the output path for the following files
SetOutPath $INSTDIR
# define what to install and place it in the output path...
# ...app...
File AppInstaller.exe
# ...and the library.
File abcd.apk
# run application
ExecShell "open" "AppInstaller.exe"
# done
SectionEnd
I tried to comment SetOutPath $INSTDIR, but then nothing happens.
Please give some suggestions.
You should use $PluginsDir for files that are temporarily used during the installation:
SilentInstall silent
RequestExecutionLevel user
OutFile "Test.exe"
Section
InitPluginsDir
SetOutPath $PluginsDir
File "MyApp.exe"
ExecWait '"$PluginsDir\MyApp.exe"' ; Double quotes on the path
SetOutPath $Temp ; SetOutPath locks the directory and we don't want to lock $PluginsDir
SectionEnd