[Setup] AppName=Site Construction Set AppVerName=SCS 2.5.2 AppPublisher=Scol Technologies AppPublisherURL=http://www.scol-technologies.org AppSupportURL=http://www.scol-technologies.org AppUpdatesURL=http://www.scol-technologies.org DefaultDirName={code:GetScolPart} DefaultGroupName=Scol Technologies Compression=bzip AppCopyright=Scol Technologies AlwaysShowComponentsList=false ShowLanguageDialog=true WizardImageFile=setup_scs_g.bmp WizardSmallImageFile=setup_scs_p.bmp DontMergeDuplicateFiles=true SolidCompression=true OutputDir=Output DisableStartupPrompt=true DisableDirPage=false DisableFinishedPage=true ShowComponentSizes=true FlatComponentsList=false DisableReadyPage=true UsePreviousSetupType=false ShowTasksTreeLines=false DisableProgramGroupPage=true UsePreviousTasks=false OutputBaseFilename=setup_scs_light EnableDirDoesntExistWarning=true DirExistsWarning=true [Tasks] Name: desktopicon; Description: Create a &desktop icon; GroupDescription: Additional icons:; Languages: English Name: quicklaunchicon; Description: Create a &Quick Launch icon; GroupDescription: Additional icons:; Languages: English Name: desktopicon; Description: Ajouter un raccourci sur le Bureau; GroupDescription: Tâches:; Languages: Francais Name: quicklaunchicon; Description: Ajouter un raccourci dans la barre de lancement rapide; GroupDescription: Tâches:; Languages: Francais [Files] Source: tools\*.*; DestDir: {app}\tools\; Flags: recursesubdirs Source: dms\*.*; DestDir: {app}\dms\; Flags: recursesubdirs Source: worlds\*.*; DestDir: {app}\worlds\; Flags: recursesubdirs [INI] [Icons] Name: {group}\SCS2; Filename: {app}\dms\scs2\scs2.scol; Languages: Francais English; IconFilename: {app}\dms\scs2\scs2.ico Name: {group}\Uninstall SCS2; Filename: {uninstallexe}; Languages: English Name: {group}\Désinstaller SCS2; Filename: {uninstallexe}; Languages: Francais Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\SCS2; Filename: {app}\dms\scs2\scs2.scol; Tasks: quicklaunchicon; Languages: Francais English; IconFilename: {app}\dms\scs2\scs2.ico Name: {userdesktop}\SCS2; Filename: {app}\dms\scs2\scs2.scol; Languages: Francais English; IconFilename: {app}\dms\scs2\scs2.ico; Tasks: desktopicon [Run] [UninstallDelete] [Languages] Name: English; MessagesFile: compiler:Default.isl Name: Francais; MessagesFile: compiler:Languages\French.isl [Messages] [Code] program Setup; const // messages MSG_ScolNeeded = 0; MSG_BadPart = 1; MSG_SCSVer = 2; // custom.txt CUSTOMTXT = '>StartUp' + #13#10 + '<' + #13#10 + 'SCS2 dms/scs2/scs2.scol' + #13#10 + 'scolViewer tools/scol_viewer/viewer.scol' + #13#10 + 'schnauzer tools/schnauzer/schnauzer.scol' + #13#10; SCOLSQLDLL = 'scolsql-2001-03-13.dll'; #include "common_type.iss" var InternalMsgs: array of TInternalMsg; SCSVersion: array of Integer; #include "common_code.iss" //////////////////// // init procedure Init(); begin // version à installer SetArrayLength(SCSVersion, 3); SCSVersion[0] := 2; SCSVersion[1] := 5; SCSVersion[2] := 0; SetArrayLength(InternalMsgs, 3); InternalMsgs[0].TextFR := 'SCS a besoin du logiciel Scol pour fonctionner. Veuillez d''abord installer Scol Voy@ger.'; InternalMsgs[0].TextEN := 'SCS need Scol software to work. Please install Scol Voy@ger first.'; InternalMsgs[0].Typ := mbInformation; InternalMsgs[0].Buttons := MB_OK; InternalMsgs[1].TextFR := 'Nom de partition invalide dans le fichier usm.ini'; InternalMsgs[1].TextEN := 'Bad partition name in usm.ini file'; InternalMsgs[1].Typ := mbError; InternalMsgs[1].Buttons := MB_OK; InternalMsgs[2].TextFR := 'Une version plus récente du SCS est déjà installée.'; InternalMsgs[2].TextEN := 'A newer SCS version is already installed.'; InternalMsgs[2].Typ := mbInformation; InternalMsgs[2].Buttons := MB_OK; end; /////////////////////////////// // Check d'un numéro de version function CheckNumVer(Str: String; Num: Integer): Boolean; var Version: Integer; Idx: Integer; begin Result := True; Idx := Pos(' ', Str); if Idx = 0 then begin Idx := Length(Str) + 1; end; Version := StrToIntDef(Copy(Str, 1, Idx-1), 0); DBG('num courant='+IntToStr(Version)+' num à installer='+IntToStr(SCSVersion[Num])); if Num < GetArrayLength(SCSVersion)-1 then begin if Version > SCSVersion[Num] then begin AffMsg(MSG_SCSVer); Result := False; end else if Version = SCSVersion[Num] then begin Result := CheckNumVer(TrimLeft(Copy(Str, Idx, Length(Str))), Num+1); end; end else if Version >= SCSVersion[Num] then begin AffMsg(MSG_SCSVer); Result := False; end; end; /////////////////////////////////////////// // Check de la version SCS si déjà installé function CheckSCSVer(): Boolean; var ScolPart: String; ScsVer: String; ArrScsVer: array of String; Idx: Integer; begin Result := True; ScolPart := GetScolPart(''); if Length(ScolPart) = 0 then begin // erreur de partition AffMsg(MSG_BadPart); Result := False; end else if LoadStringFromFile(ScolPart + '\dms\scs2\scs.ver', ScsVer) = True then begin SetArrayLength(ArrScsVer, 0); Strings2Array(ScsVer, ArrScsVer); Idx := SearchFirstLine(ArrScsVer, 'version ', 0, True); if Idx >= 0 then begin ScsVer := TrimLeft(ArrScsVer[Idx]); ScsVer := Copy(ScsVer, Length('version '), Length(ScsVer)); ScsVer := TrimLeft(ScsVer); Result := CheckNumVer(ScsVer, 0); end; end; end; ///////////////////// // Lancement du setup function InitializeSetup(): Boolean; begin DBG('passage ds InitializeSetup'); // init Init(); // pas de controle si argument /FORCE if (isForced()) then begin Result := True; end else begin // Fin si scol n'est pas installé if isScolInstalled() = False then begin AffMsg(MSG_ScolNeeded); Result := False; end else begin // Fin si version SCS plus récente déjà installée Result := CheckSCSVer(); end; end; end; //////////////// // Saut de page function SkipCurPage(CurPage: Integer): Boolean; begin Result := False; DBG('curpage='+IntToStr(CurPage)); // on saute la page de sélection de répertoire si on n'est pas en /FORCE if (CurPage = wpSelectDir) and not isForced() then begin DBG('SelectDir page'); Result := True; end; end; //////////////////// // Changement d'état procedure CurStepChanged(CurStep: Integer); var ScolDir: String; UsmIni: String; ArrUsmIni: array of String; begin DBG('curstep=' + IntToStr(CurStep)); end; [_ISTool] OutputExeFilename=Output\setup_scs_alone.exe