If you point out and .exe to be compressed you'll have some interesting options "Prompt" , "Package Title" , "display license" , "Install Program" , "Post install command" , "Hidden Winow" ,"Finished Message".
In brief - iexpress creates installation file with possibility of 3 pop-up messages - confirmation,license agreement,and one for the final.
Also - it allows you to run one of the executables at the end with custom parameters ,and more importantly in background hidden mod.
Iexpress also has command line interface - it accepts an .ini (it's called sed) file with the options available in the UI.
So JFF I've created two scripts one that provides pop-up messages and one that starts a hidden process.As it's part of windows for a long time it will work every machine from XP and above
1.Pop-up messages - as it wants to run an executable after the installation I've choose subst without parameters and in hidden mode - it will do nothing ,and will do it fast so you'll see only the pop-ups:
Code: Select all
;@echo off
;set message1=message1
;set message1_title=message1_title
;set "license_file=%~f0"
;set ppopup_executable=popupe.exe
;set message2=message2
;
;copy /y "%~f0" "%temp%\popup.sed"
;(echo(InstallPrompt=%message1%)>>"%temp%\popup.sed"
;(echo(DisplayLicense=%license_file%)>>"%temp%\popup.sed"
;(echo(FinishMessage=%message2%)>>"%temp%\popup.sed";
;(echo(TargetName=%cd%\%ppopup_executable%)>>"%temp%\popup.sed";
;(echo(FriendlyName=%message1_title%)>>"%temp%\popup.sed"
;
;iexpress /n /q /m %temp%\popup.sed
;popupe.exe
;for /d %%# in ("%tmp%\ixp???.tmp") do rd /s /q "%%#"
;del /q /f "%temp%\popup.sed"
;exit /b 0
[Version]
Class=IEXPRESS
SEDVersion=3
[Options]
PackagePurpose=InstallApp
ShowInstallProgramWindow=1
HideExtractAnimation=1
UseLongFileName=0
InsideCompressed=0
CAB_FixedSize=0
CAB_ResvCodeSigning=0
RebootMode=N
InstallPrompt=%InstallPrompt%
DisplayLicense=%DisplayLicense%
FinishMessage=%FinishMessage%
TargetName=%TargetName%
FriendlyName=%FriendlyName%
AppLaunched=%AppLaunched%
PostInstallCmd=%PostInstallCmd%
AdminQuietInstCmd=%AdminQuietInstCmd%
UserQuietInstCmd=%UserQuietInstCmd%
SourceFiles=SourceFiles
[SourceFiles]
SourceFiles0=C:\Windows\System32\
[SourceFiles0]
%FILE0%=
[Strings]
AppLaunched=subst.exe
PostInstallCmd=<None>
AdminQuietInstCmd=
UserQuietInstCmd=
FILE0="subst.exe"
2.Starting a hidden process - this time there are no pop-ups .And the packed executable is the cmd.exe itself - It will be ran after the installation with some arguments (in this case pause) .You'll be able to see the new cmd instance in the task manager:
Code: Select all
;@echo off
;set "hidden.starter=hiddener.exe"
;set "hidden.command=/c pause"
;
;copy /y "%~f0" "%temp%\hid.sed"
;(echo(PostInstallCmd=%hidden.command%)>>"%temp%\hid.sed"
;(echo(TargetName=%cd%\%hidden.starter%)>>"%temp%\hid.sed"
;
;iexpress /n /q /m %temp%\hid.sed
;hiddener.exe
;for /d %%# in ("%tmp%\ixp???.tmp") do rd /s /q "%%#"
;del /q /f "%temp%\hid.sed"
;exit /b 0
[Version]
Class=IEXPRESS
SEDVersion=3
[Options]
PackagePurpose=InstallApp
ShowInstallProgramWindow=1
HideExtractAnimation=1
UseLongFileName=0
InsideCompressed=0
CAB_FixedSize=0
CAB_ResvCodeSigning=0
RebootMode=N
InstallPrompt=%InstallPrompt%
DisplayLicense=%DisplayLicense%
FinishMessage=%FinishMessage%
TargetName=%TargetName%
FriendlyName=%FriendlyName%
AppLaunched=%AppLaunched%
PostInstallCmd=%PostInstallCmd%
AdminQuietInstCmd=%AdminQuietInstCmd%
UserQuietInstCmd=%UserQuietInstCmd%
SourceFiles=SourceFiles
[SourceFiles]
SourceFiles0=C:\Windows\System32\
[SourceFiles0]
%FILE0%=
[Strings]
InstallPrompt=
DisplayLicense=
FinishMessage=
FriendlyName=hidden
AppLaunched=cmd.exe
AdminQuietInstCmd=
UserQuietInstCmd=
FILE0="cmd.exe"
;PostInstallCmd=/c pause
;TargetName=
Edit - Every run of created exe files creates a folder like %tmp%\ixp???.tmp and now I've added a code for deletion.
EDIT - Starting a hidden process in fact does not work as expected .PostInstallCmd= concerns actions after the installation.Can be worked as it should be with additional .inf file and I'm working on it.