; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! [Setup] ; NOTE: The value of AppId uniquely identifies this application. ; Do not use the same AppId value in installers for other applications. ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) AppId={{5C74A86F-D960-4B79-94F2-09CC5CD8146C} AppName=Scol Voy@ger AppVersion=8.6.0 AppVerName=Scol Voy@ger 8.6.0 AppPublisher=Scol-Technologies AppPublisherURL=https://www.openspace3d.com AppSupportURL=https://www.openspace3d.com AppUpdatesURL=https://www.openspace3d.com DefaultDirName={code:GetScolInstallDir} DefaultGroupName=Scol Voy@ger OutputDir=release OutputBaseFilename=scol_plugin SetupIconFile=scol.ico Compression=lzma SolidCompression=true UninstallDisplayIcon={app}\scol.ico InternalCompressLevel=max VersionInfoVersion=8.6.0 VersionInfoCompany=Scol-Technologies VersionInfoDescription=Scol Voy@ger VersionInfoCopyright=Scol-Technologies 2023 MinVersion=0,5.01.2600 AppCopyright=Scol-Technologies 2023 DisableProgramGroupPage=false UsePreviousAppDir=false SignTool=i-maginer ;sign setup i-maginer "C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool" sign /a /t http://timestamp.globalsign.com/scripts/timestamp.dll $f [Languages] Name: english; MessagesFile: compiler:Default.isl Name: french; MessagesFile: compiler:Languages\French.isl [Tasks] [Files] ; NOTE: Don't use "Flags: ignoreversion" on any shared system files ;Source: "..\..\dependencies\redist\directx\*"; DestDir: "{tmp}\directx"; Flags: ignoreversion Source: "..\..\dependencies\redist\vc20xx\vc_redist.x86.exe"; DestDir: "{tmp}\vc20xx"; Flags: ignoreversion Source: "..\..\scol_sdk\bin\windows\x86\Scol.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "..\..\scol_sdk\bin\windows\x86\*.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\..\scol_sdk\bin\windows\x86\*.bin"; DestDir: "{app}"; Flags: ignoreversion Source: "..\..\scol_sdk\bin\windows\x86\*.dat"; DestDir: "{app}"; Flags: ignoreversion ; Navigator Source: "..\..\scol_sdk\bin\windows\cefres\*"; DestDir: "{app}\plugins\cefres"; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: ".svn" ; voyager Source: "..\..\scol_sdk\bin\windows\Ogre_Redist\*"; DestDir: "{app}\plugins\Ogre_Redist"; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: ".svn" Source: "..\..\scol_sdk\bin\windows\btdata\*"; DestDir: "{app}\plugins\btdata"; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: ".svn" Source: "..\..\scol_sdk\bin\windows\x86\plugins\*"; DestDir: "{app}\plugins"; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: ".svn, OpenNiSCOL.dll, nonin.dll, OptiTrack.dll, wsystem.dll, RespirationBelt.dll, emotionDetector.dll, Epoc.dll, scolvlc.dll, *.so, *.pdb, *.tmp, *.ilk, *.exp, NiTE2, OpenNI2" Source: "..\..\scol_applications\scolvoyager\logo.bmp"; DestDir: "{app}\Partition_LockedApp"; Flags: ignoreversion overwritereadonly; Excludes: ".svn" Source: "..\..\scol_applications\scolvoyager\locked\*"; DestDir: "{app}\Partition_LockedApp\locked"; Flags: ignoreversion createallsubdirs overwritereadonly recursesubdirs; Excludes: ".svn" Source: "..\..\scol_applications\scolvoyager\lib\*"; DestDir: "{app}\Partition_LockedApp\lib"; Flags: ignoreversion createallsubdirs overwritereadonly recursesubdirs; Excludes: ".svn" Source: "Usm.ini"; DestDir: "{app}"; Flags: ignoreversion overwritereadonly onlyifdoesntexist; AfterInstall: UpdateUsm Source: "scol.ico"; DestDir: "{app}"; Flags: ignoreversion Source: "ext.ini"; DestDir: "{app}"; Flags: ignoreversion overwritereadonly [Icons] Name: {group}\Scol Voy@ger; Filename: {app}\Scol.exe; IconIndex: 0; IconFilename: {app}\scol.ico Name: {group}\{cm:ProgramOnTheWeb,Scolring}; Filename: http://www.scolring.org Name: {group}\{cm:UninstallProgram,Scol Voy@ger}; Filename: {uninstallexe} Name: {group}\Configurer le Scol Voy@ger; Filename: {app}\Partition_LockedApp\locked\voyager\setup.scol; IconFilename: {app}\scol.ico; IconIndex: 0; Tasks: ; Languages: french Name: {group}\Scol Voy@ger Setup; Filename: {app}\Partition_LockedApp\locked\voyager\setup.scol; IconFilename: {app}\scol.ico; IconIndex: 0; Tasks: ; Languages: english [Run] Filename: {tmp}\vc20xx\vc_redist.x86.exe; Parameters: /q; StatusMsg: Installing MS Visual 2017 C++ redist... ;Filename: {tmp}\directx\DXSETUP.exe; Parameters: /silent; StatusMsg: Installing MS DirectX redist... Filename: {app}\Scol.exe; Description: "{cm:LaunchProgram,Scol Voy@ger}"; Flags: RunAsCurrentUser WaitUntilIdle; [Registry] Root: HKLM; Subkey: SOFTWARE\Scol-Technologies\; ValueType: none; Permissions: everyone-modify; Flags: noerror; Tasks: ; Languages: Root: HKCR; Subkey: .scol; ValueType: string; ValueName: ""; ValueData: "scol_file"; Flags: uninsdeletevalue Root: HKCR; Subkey: "scol_file"; ValueType: string; ValueName: ""; ValueData: "Script SCOL"; Flags: uninsdeletekey Root: HKCR; Subkey: "scol_file\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\scol.ico,0" Root: HKCR; Subkey: "scol_file\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\scol.exe"" ""%1""" Root: HKCR; Subkey: "scol"; ValueType: string; ValueName: ""; ValueData: "URL : Protocol SCOL"; Flags: uninsdeletekey Root: HKCR; Subkey: "scol"; ValueType: string; ValueName: "URL Protocol"; ValueData: ""; Flags: uninsdeletekey Root: HKCR; Subkey: "scol"; ValueType: binary; ValueName: "EditFlags"; ValueData: "02 00 00 00"; Flags: uninsdeletekey Root: HKCR; Subkey: "scol\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\scol.ico,0" Root: HKCR; Subkey: "scol\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\scol.exe"" ""%1""" [CustomMessages] UpToDate_english=Your Scol Voy@ger version is up to date. Would you force the installation? UpToDate_french=Votre version du Scol Voy@ger est déja à jour. Souhaitez vous forcer l'installation ? [Code] #include "../common/common_type.iss" var InternalMsgs: array of TInternalMsg; #include "../common/common_code.iss" /////////////////////////////// // Scol install directory function GetScolInstallDir(Default: String): String; var Value: String; begin if (isScolInstalled()) then begin Value := GetScolDir(ExpandConstant('{pf}') + '\Scol Voyager'); end else begin Value := ExpandConstant('{pf}') + '\Scol Voyager'; end; if (CheckScolVer(Value) = true) then begin if MsgBox(CustomMessage('UpToDate_' + ExpandConstant('{language}')), mbInformation, MB_YESNO) = IDNO then begin Abort; end end; Result := Value; end; var ResultCode: Integer; procedure UpdateUsm(); var UsmIni: String; UsmFile: String; ArrUsmIni: array of String; Version: TWindowsVersion; begin GetWindowsVersionEx(Version); UsmFile := ExpandConstant('{app}\usm.ini'); // update usm.ini LoadStringFromFile(UsmFile, UsmIni); if FileExists (UsmFile)= true then begin FileCopy (UsmFile, ExpandConstant('{app}\usm.bak'), false); end; // load file in array SetArrayLength(ArrUsmIni, 0); Strings2Array(UsmIni, ArrUsmIni); InstallPluginDll(ArrUsmIni, 'XTension.dll', ''); InstallPluginDll(ArrUsmIni, 'MMedia24.dll', ''); InstallPluginDll(ArrUsmIni, 'LibOS2D24.dll', ''); InstallPluginDll(ArrUsmIni, 'Lib2D24.dll', ''); InstallPluginDll(ArrUsmIni, 'security.dll', ''); InstallPluginDll(ArrUsmIni, 'SerialIO.dll', ''); InstallPluginDll(ArrUsmIni, 'ScolSQL.dll', ''); InstallPluginDll(ArrUsmIni, 'SO3Engine.dll', ''); InstallPluginDll(ArrUsmIni, 'ZooGL24.dll', ''); InstallPluginDll(ArrUsmIni, 'BitmapToolkit.dll', ''); InstallPluginDll(ArrUsmIni, 'audio.dll', ''); InstallPluginDll(ArrUsmIni, 'sCurl.dll', ''); InstallPluginDll(ArrUsmIni, 'sXml.dll', ''); InstallPluginDll(ArrUsmIni, 'wiimote.dll', ''); InstallPluginDll(ArrUsmIni, 'neurosky.dll', ''); InstallPluginDll(ArrUsmIni, 'joypad.dll', ''); InstallPluginDll(ArrUsmIni, 'speech.dll', ''); InstallPluginDll(ArrUsmIni, 'Vuzix.dll', ''); InstallPluginDll(ArrUsmIni, 'sqlite3.dll', ''); InstallPluginDll(ArrUsmIni, 'sTuio.dll', ''); InstallPluginDll(ArrUsmIni, 'sVrpn.dll', ''); //InstallPluginDll(ArrUsmIni, 'oculus.dll', ''); InstallPluginDll(ArrUsmIni, 'sPDF.dll', ''); InstallPluginDll(ArrUsmIni, 'tobii.dll', ''); InstallPluginDll(ArrUsmIni, 'sensor.dll', ''); InstallPluginDll(ArrUsmIni, 'androidDeployer.dll', ''); InstallPluginDll(ArrUsmIni, 'rpigpio.dll', ''); if Version.NTPlatform and not ((Version.Major = 5) and (Version.Minor = 1)) then begin InstallPluginDll(ArrUsmIni, 'LeapMotion.dll', ''); InstallPluginDll(ArrUsmIni, 'sopenvr.dll', ''); end; InstallPluginDll(ArrUsmIni, 'x10.dll', ''); InstallPluginDll(ArrUsmIni, 'usbuirt.dll', ''); InstallPluginDll(ArrUsmIni, 'Myo.dll', ''); InstallPluginDll(ArrUsmIni, 's3drudder.dll', ''); InstallPluginDll(ArrUsmIni, 'glove.dll', ''); InstallPluginDll(ArrUsmIni, 'spacepointfusion.dll', ''); InstallPluginDll(ArrUsmIni, 'emotiv.dll', ''); InstallPluginDll(ArrUsmIni, 'sOpenXR.dll', ''); //InstallPluginDll(ArrUsmIni, 'nonin.dll', ''); ReplacePartition(ArrUsmIni, './Partition_LocalUsr', './' + Str2Scol(GetLastDir(ExpandConstant('{app}'))) + '/Partition_LocalUsr', True); SaveStringsToFile(UsmFile, ArrUsmIni, false); end; procedure CurStepChanged(CurStep: TSetupStep); begin if (CurStep = ssInstall) then begin // kill Scol Voyager and wait for it to terminate if (Exec(ExpandConstant('tskill'), 'scol', '', SW_HIDE, ewNoWait, ResultCode) OR Exec(ExpandConstant('taskkill'), '/IM ' + GetScolExe() + ' /F', '', SW_HIDE, ewNoWait, ResultCode)) then begin // handle success if necessary; ResultCode contains the exit code //MsgBox('ok', mbInformation, MB_OK); end else begin // handle failure if necessary; ResultCode contains the error code //MsgBox('pas ok', mbInformation, MB_OK); end; end; end; procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); begin if (CurUninstallStep = usUninstall) then begin // kill Scol Voyager and wait for it to terminate if Exec(ExpandConstant('tskill'), 'scol', '', SW_HIDE, ewNoWait, ResultCode) OR Exec(ExpandConstant('taskkill'), '/IM ' + GetScolExe() + ' /F', '', SW_HIDE, ewNoWait, ResultCode) then begin // handle success if necessary; ResultCode contains the exit code //MsgBox('ok', mbInformation, MB_OK); end else begin // handle failure if necessary; ResultCode contains the error code //MsgBox('pas ok', mbInformation, MB_OK); end; end; end;