![]() |
#1 |
Junior Member
Join Date: Feb 2016
Posts: 4
|
How to make self extracting exe ?
Hi,
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. |
![]() |
![]() |
![]() |
#2 |
Major Dude
Join Date: May 2005
Location: New Zealand
Posts: 893
|
So instead of using InstallDir, you want to "install" to a temp directory. Something like this:
PHP Code:
"Only a MouseHelmet will save you from a MouseTrap" -Jason Ross (Me) NSIS 3 POSIX Ninja Wiki Profile Last edited by Anders; 1st March 2016 at 21:25. Reason: Don't lock pluginsdir |
![]() |
![]() |
![]() |
#3 |
Junior Member
Join Date: Feb 2016
Posts: 4
|
Thanks Jason,
Your script works, But I have also done in the same way. SilentInstall silent RequestExecutionLevel user ;no elevation needed for this test ShowInstDetails hide # this will be the created executable archive OutFile "ABCD.exe" InstallDir $EXEDIR # the executable part Section # define the output path for the following files SetOutPath $TEMP\ApkPath # define what to install and place it in the output path... # ...your app... File AppInstaller.exe # ...and the library. File xyz.apk # run your application ExecWait "$TEMP\ApkPath\AppInstaller.exe" SetOutPath $TEMP RMDir /r $TEMP\ApkPath # done SectionEnd |
![]() |
![]() |
![]() |
#4 |
Major Dude
Join Date: May 2005
Location: New Zealand
Posts: 893
|
The reason why we use $PLUGINSDIR is because it's automatically removed when the installer exits, so you don't have to use RMDir /r "$TEMP\thisdir".
"Only a MouseHelmet will save you from a MouseTrap" -Jason Ross (Me) NSIS 3 POSIX Ninja Wiki Profile |
![]() |
![]() |
![]() |
|
Tags |
nsis |
Thread Tools | Search this Thread |
Display Modes | |
|
|