| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 | 
							- ; -- CodeExample1.iss --
 
- ;
 
- ; This script shows various things you can achieve using a [Code] section.
 
- [Setup]
 
- AppName=My Program
 
- AppVersion=1.5
 
- WizardStyle=modern
 
- DisableWelcomePage=no
 
- DefaultDirName={code:MyConst}\My Program
 
- DefaultGroupName=My Program
 
- UninstallDisplayIcon={app}\MyProg.exe
 
- InfoBeforeFile=Readme.txt
 
- OutputDir=userdocs:Inno Setup Examples Output
 
- [Files]
 
- Source: "MyProg.exe"; DestDir: "{app}"; Check: MyProgCheck; BeforeInstall: BeforeMyProgInstall('MyProg.exe'); AfterInstall: AfterMyProgInstall('MyProg.exe')
 
- Source: "MyProg.chm"; DestDir: "{app}"; Check: MyProgCheck; BeforeInstall: BeforeMyProgInstall('MyProg.chm'); AfterInstall: AfterMyProgInstall('MyProg.chm')
 
- Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
 
- [Icons]
 
- Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
 
- [Code]
 
- var
 
-   MyProgChecked: Boolean;
 
-   MyProgCheckResult: Boolean;
 
-   FinishedInstall: Boolean;
 
- function InitializeSetup(): Boolean;
 
- begin
 
-   Log('InitializeSetup called');
 
-   Result := MsgBox('InitializeSetup:' #13#13 'Setup is initializing. Do you really want to start setup?', mbConfirmation, MB_YESNO) = idYes;
 
-   if Result = False then
 
-     MsgBox('InitializeSetup:' #13#13 'Ok, bye bye.', mbInformation, MB_OK);
 
- end;
 
- procedure InitializeWizard;
 
- begin
 
-   Log('InitializeWizard called');
 
- end;
 
- <event('InitializeWizard')>
 
- procedure InitializeWizard2;
 
- begin
 
-   Log('InitializeWizard2 called');
 
- end;
 
- procedure DeinitializeSetup();
 
- var
 
-   FileName: String;
 
-   ResultCode: Integer;
 
- begin
 
-   Log('DeinitializeSetup called');
 
-   if FinishedInstall then begin
 
-     if MsgBox('DeinitializeSetup:' #13#13 'The [Code] scripting demo has finished. Do you want to uninstall My Program now?', mbConfirmation, MB_YESNO) = idYes then begin
 
-       FileName := ExpandConstant('{uninstallexe}');
 
-       if not Exec(FileName, '', '', SW_SHOWNORMAL, ewNoWait, ResultCode) then
 
-         MsgBox('DeinitializeSetup:' #13#13 'Execution of ''' + FileName + ''' failed. ' + SysErrorMessage(ResultCode) + '.', mbError, MB_OK);
 
-     end else
 
-       MsgBox('DeinitializeSetup:' #13#13 'Ok, bye bye.', mbInformation, MB_OK);
 
-   end;
 
- end;
 
- procedure CurStepChanged(CurStep: TSetupStep);
 
- begin
 
-   Log('CurStepChanged(' + IntToStr(Ord(CurStep)) + ') called');
 
-   if CurStep = ssPostInstall then
 
-     FinishedInstall := True;
 
- end;
 
- procedure CurInstallProgressChanged(CurProgress, MaxProgress: Integer);
 
- begin
 
-   Log('CurInstallProgressChanged(' + IntToStr(CurProgress) + ', ' + IntToStr(MaxProgress) + ') called');
 
- end;
 
- function NextButtonClick(CurPageID: Integer): Boolean;
 
- var
 
-   ResultCode: Integer;
 
- begin
 
-   Log('NextButtonClick(' + IntToStr(CurPageID) + ') called');
 
-   case CurPageID of
 
-     wpSelectDir:
 
-       MsgBox('NextButtonClick:' #13#13 'You selected: ''' + WizardDirValue + '''.', mbInformation, MB_OK);
 
-     wpSelectProgramGroup:
 
-       MsgBox('NextButtonClick:' #13#13 'You selected: ''' + WizardGroupValue + '''.', mbInformation, MB_OK);
 
-     wpReady:
 
-       begin
 
-         if MsgBox('NextButtonClick:' #13#13 'Using the script, files can be extracted before the installation starts. For example we could extract ''MyProg.exe'' now and run it.' #13#13 'Do you want to do this?', mbConfirmation, MB_YESNO) = idYes then begin
 
-           ExtractTemporaryFile('myprog.exe');
 
-           if not ExecAsOriginalUser(ExpandConstant('{tmp}\myprog.exe'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then
 
-             MsgBox('NextButtonClick:' #13#13 'The file could not be executed. ' + SysErrorMessage(ResultCode) + '.', mbError, MB_OK);
 
-         end;
 
-         BringToFrontAndRestore();
 
-         MsgBox('NextButtonClick:' #13#13 'The normal installation will now start.', mbInformation, MB_OK);
 
-       end;
 
-   end;
 
-   Result := True;
 
- end;
 
- function BackButtonClick(CurPageID: Integer): Boolean;
 
- begin
 
-   Log('BackButtonClick(' + IntToStr(CurPageID) + ') called');
 
-   Result := True;
 
- end;
 
- function ShouldSkipPage(PageID: Integer): Boolean;
 
- begin
 
-   Log('ShouldSkipPage(' + IntToStr(PageID) + ') called');
 
-   { Skip wpInfoBefore page; show all others }
 
-   case PageID of
 
-     wpInfoBefore:
 
-       Result := True;
 
-   else
 
-     Result := False;
 
-   end;
 
- end;
 
- procedure CurPageChanged(CurPageID: Integer);
 
- begin
 
-   Log('CurPageChanged(' + IntToStr(CurPageID) + ') called');
 
-   case CurPageID of
 
-     wpWelcome:
 
-       MsgBox('CurPageChanged:' #13#13 'Welcome to the [Code] scripting demo. This demo will show you some possibilities of the scripting support.' #13#13 'The scripting engine used is RemObjects Pascal Script by Carlo Kok. See http://www.remobjects.com/ps for more information.', mbInformation, MB_OK);
 
-     wpFinished:
 
-       MsgBox('CurPageChanged:' #13#13 'Welcome to final page of this demo. Click Finish to exit.', mbInformation, MB_OK);
 
-   end;
 
- end;
 
- function PrepareToInstall(var NeedsRestart: Boolean): String;
 
- begin
 
-   Log('PrepareToInstall() called');
 
-   if MsgBox('PrepareToInstall:' #13#13 'Setup is preparing to install. Using the script you can install any prerequisites, abort Setup on errors, and request restarts. Do you want to return an error now?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = idYes then
 
-     Result := '<your error text here>.'
 
-   else
 
-     Result := '';
 
- end;
 
- function MyProgCheck(): Boolean;
 
- begin
 
-   Log('MyProgCheck() called');
 
-   if not MyProgChecked then begin
 
-     MyProgCheckResult := MsgBox('MyProgCheck:' #13#13 'Using the script you can decide at runtime to include or exclude files from the installation. Do you want to install MyProg.exe and MyProg.chm to ' + ExtractFilePath(CurrentFileName) + '?', mbConfirmation, MB_YESNO) = idYes;
 
-     MyProgChecked := True;
 
-   end;
 
-   Result := MyProgCheckResult;
 
- end;
 
- procedure BeforeMyProgInstall(S: String);
 
- begin
 
-   Log('BeforeMyProgInstall(''' + S + ''') called');
 
-   MsgBox('BeforeMyProgInstall:' #13#13 'Setup is now going to install ' + S + ' as ' + CurrentFileName + '.', mbInformation, MB_OK);
 
- end;
 
- procedure AfterMyProgInstall(S: String);
 
- begin
 
-   Log('AfterMyProgInstall(''' + S + ''') called');
 
-   MsgBox('AfterMyProgInstall:' #13#13 'Setup just installed ' + S + ' as ' + CurrentFileName + '.', mbInformation, MB_OK);
 
- end;
 
- function MyConst(Param: String): String;
 
- begin
 
-   Log('MyConst(''' + Param + ''') called');
 
-   Result := ExpandConstant('{autopf}');
 
- end;
 
 
  |