1 ; Script generated by the Inno Setup Script Wizard.
\r
2 ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
\r
4 #define MyAppName "Pithos+"
\r
5 #define SrcApp "PSourcex64\Pithos.Client.WPF.exe"
\r
6 #define MyAppPublisher "GRNET"
\r
7 #define MyAppURL "http://pithos.grnet.gr/"
\r
8 #define MyAppExeName "Pithos.Client.WPF.exe"
\r
9 #define MyAppVersion GetFileVersion(SrcApp)
\r
10 #define MyURL "http://www.grnet.gr/"
\r
13 ;WARNING: DO NOT CHANGE THE APP ID (AppId) or the update will not work correctly.
\r
14 ;AppId is used to check if we are installed using this isntaller and not by other means.
\r
15 AppId={{926354B2-04D2-47CF-8FAA-04AB3682008B}
\r
16 AppName={#MyAppName}
\r
17 AppVersion={#MyAppVersion}
\r
18 AppVerName={#MyAppName} {#MyAppVersion}
\r
19 UninstallDisplayName={#MyAppName} {#MyAppVersion}
\r
20 AppPublisher={#MyAppPublisher}
\r
21 AppPublisherURL={#MyAppURL}
\r
22 AppSupportURL={#MyAppURL}
\r
23 AppUpdatesURL={#MyAppURL}
\r
24 DefaultDirName={pf}\PithosPlus
\r
25 DefaultGroupName={#MyAppName}
\r
27 LicenseFile=Licenses\GRNET License.txt
\r
28 OutputBaseFilename=PithosPlus_Setupv{#MyAppVersion}
\r
29 SolidCompression=True
\r
30 UsePreviousSetupType=False
\r
31 UsePreviousTasks=False
\r
32 UsePreviousLanguage=False
\r
33 ShowTasksTreeLines=True
\r
34 AppCopyright=(c) 2011 - 2012 GRNET
\r
35 PrivilegesRequired=none
\r
36 EnableDirDoesntExistWarning=True
\r
37 DirExistsWarning=yes
\r
38 AppContact=okeanos@grnet.gr
\r
39 AppSupportPhone=+30 210 0000000
\r
40 AppReadmeFile=My Readme
\r
41 UninstallDisplayIcon={app}\Pithos.Client.WPF.exe
\r
42 WizardImageFile=Images\ppWZDImage.bmp
\r
43 WizardSmallImageFile=Images\ppWZDSmall.bmp
\r
44 VersionInfoVersion={#MyAppVersion}
\r
45 MinVersion=0,5.01sp3
\r
48 Name: "english"; MessagesFile: "compiler:Default.isl"
\r
49 Name: "greek"; MessagesFile: "compiler:Languages\Greek.isl"
\r
50 Name: "german"; MessagesFile: "compiler:Languages\German.isl"
\r
51 Name: "french"; MessagesFile: "compiler:Languages\French.isl"
\r
52 Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
\r
55 Web=You can visit our web site for more info
\r
58 Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; Components: Documentation RequiredFiles
\r
59 ;Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1; Components: Manual RequiredFiles Source
\r
60 Name: "visitweb"; Description: "{cm:Web}"; GroupDescription: "{cm:Web}"; Flags: unchecked; Components: Documentation RequiredFiles; Languages: english french german greek spanish
\r
63 ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
\r
64 Source: "PSourcex64\Pithos.Client.WPF.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek; Check: Is64BitInstallMode
\r
65 Source: "PSource\Pithos.Client.WPF.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek; Check: not Is64BitInstallMode
\r
66 Source: "PSourcex64\AsyncCtpLibrary.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Tasks: desktopicon; Languages: english french german spanish greek
\r
67 Source: "PSourcex64\Castle.ActiveRecord.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
68 Source: "PSourcex64\Caliburn.Micro.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
69 Source: "PSourcex64\Castle.ActiveRecord.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
70 Source: "PSourcex64\Castle.Components.Validator.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
71 Source: "PSourcex64\Castle.Core.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
72 Source: "PSourcex64\Hardcodet.Wpf.TaskbarNotification.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
73 Source: "PSourcex64\Iesi.Collections.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
74 Source: "PSourcex64\log4net.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
75 Source: "PSourcex64\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
76 Source: "PSourcex64\NHibernate.ByteCode.Castle.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
77 Source: "PSourcex64\NHibernate.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
78 Source: "PSourcex64\NHibernate.Search.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
79 Source: "PSourcex64\ParallelExtensionsExtras.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
80 Source: "PSourcex64\Pithos.Client.WPF.exe.config"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
81 Source: "PSourcex64\Pithos.Core.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
82 Source: "PSourcex64\Pithos.Interfaces.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
83 Source: "PSourcex64\Pithos.Network.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
84 Source: "PSourcex64\Pithos.ShellExtensions.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
85 ;Source: "PSourcex64\Pithos.ShellExtensions.tlb"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
86 Source: "PSourcex64\System.Data.SQLite.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
87 Source: "PSourcex64\System.Threading.Tasks.Dataflow.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
88 Source: "PSourcex64\System.Windows.Interactivity.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
89 Source: "PSourcex64\WPFToolkit.Extended.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
90 Source: "TortoiseOverlays\License.txt"; DestDir: "{cf}/\TortoiseOverlays"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
91 Source: "TortoiseOverlays\TortoiseOverlays.dll"; DestDir: "{cf}/\TortoiseOverlays"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
92 Source: "TortoiseOverlays\icons\XPStyle\AddedIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
93 Source: "TortoiseOverlays\icons\XPStyle\ConflictIcon.ico"; DestDir: "{cf}/TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
94 Source: "TortoiseOverlays\icons\XPStyle\DeletedIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
95 Source: "TortoiseOverlays\icons\XPStyle\IgnoredIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
96 Source: "TortoiseOverlays\icons\XPStyle\LockedIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
97 Source: "TortoiseOverlays\icons\XPStyle\ModifiedIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
98 Source: "TortoiseOverlays\icons\XPStyle\NormalIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
99 Source: "TortoiseOverlays\icons\XPStyle\ReadOnlyIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
100 Source: "TortoiseOverlays\icons\XPStyle\UnversionedIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek
\r
102 ;Source: "PSourcex64\Pithos.Client.WPF.exe"; DestDir: "{app}"; DestName: "MyProg.exe"; Check: Is64BitInstallMode
\r
103 ;Source: "PSource\Pithos.Client.WPF.exe"; DestDir: "{app}"; Check: not Is64BitInstallMode
\r
105 Source: "Redistributables\*"; DestDir: "{tmp}"; Flags: ignoreversion deleteafterinstall
\r
106 Source: "Images\grnet-logo.bmp"; Flags: dontcopy
\r
107 Source: "Images\account.bmp"; Flags: dontcopy
\r
110 Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
\r
111 Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
\r
112 Name: "{group}\{cm:ProgramOnTheWeb,GRNET}"; Filename: "{#MyURL}"
\r
113 Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
\r
114 Name: "{commonstartup}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
\r
115 Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
\r
116 ;Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
\r
119 Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
\r
123 ;Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "Pithos+"; ValueData: """{app}\{#MyAppExeName}"""; Flags: createvalueifdoesntexist uninsdeletevalue
\r
125 Root: "HKCR"; Subkey: "*\shellex\ContextMenuHandlers\Pithos.FileContextMenu"; ValueData: "b1f1405d-94a1-4692-b72f-fc8caf8b8700"; Flags: createvalueifdoesntexist uninsdeletekey
\r
126 Root: "HKCR"; Subkey: "CLSID\0CFB4119-DABE-4E32-AB2D-2D41873BC599"; ValueData: "PithosContextMenu Class"; Flags: createvalueifdoesntexist uninsdeletekey
\r
129 Name: "RequiredFiles"; Description: "Required Files"; Types: Advanced Default; Flags: checkablealone fixed; Languages: english french german greek spanish
\r
130 Name: "Documentation"; Description: "Documentation"; Types: Default Advanced; Flags: dontinheritcheck; Languages: english french german greek spanish
\r
133 Name: "Default"; Description: "Default Installation"; Languages: english french german greek spanish
\r
134 Name: "Advanced"; Description: "Custom Installation"; Flags: iscustom; Languages: english german french greek spanish
\r
137 Name: "{cf}/\TortoiseOverlays"; Components: RequiredFiles; Tasks: desktopicon; Languages: english french german greek spanish
\r
138 Name: "{cf}/\TortoiseOverlays/\icons"
\r
139 Name: "{cf}/\TortoiseOverlays/icons/\XPStyle"
\r
145 MyAppMutex = 'MYAPPMUTEX';
\r
147 dotNET40Missing: Boolean;
\r
149 UsagePage: TOutputMsgWizardPage;
\r
150 Wz1, Wz2 : TOutputMsgWizardPage;
\r
152 function IsDotNetDetected(version: string; service: cardinal): boolean;
\r
153 // 'v1.1.4322' .NET Framework 1.1
\r
154 // 'v2.0.50727' .NET Framework 2.0
\r
155 // 'v3.0' .NET Framework 3.0
\r
156 // 'v3.5' .NET Framework 3.5
\r
157 // 'v4\Client' .NET Framework 4.0 Client Profile
\r
158 // 'v4\Full' .NET Framework 4.0 Full Installation
\r
160 // 0 No service packs required
\r
161 // 1, 2, etc. Service pack 1, 2, etc. required
\r
162 // if not IsDotNetDetected('v4\Client', 0) then begin
\r
165 install, serviceCount: cardinal;
\r
169 key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + version;
\r
170 // .NET 3.0 uses value InstallSuccess in subkey Setup
\r
171 if Pos('v3.0', version) = 1 then begin
\r
172 success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
\r
174 success := RegQueryDWordValue(HKLM, key, 'Install', install);
\r
176 // .NET 4.0 uses value Servicing instead of SP
\r
177 if Pos('v4', version) = 1 then begin
\r
178 success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
\r
180 success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
\r
182 result := success and (install = 1) and (serviceCount >= service);
\r
185 function InitializeSetup(): Boolean;
\r
187 // Test the presence of .NET 4.0
\r
188 if (not(RegKeyExists(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4'))) then
\r
189 dotNET40Missing := True;
\r
194 function ShouldInstalldotNET40(): Boolean;
\r
196 Result := dotNET40Missing;
\r
199 procedure CurPageChanged(CurPageID: Integer);
\r
201 if CurPageID = wpInstalling then
\r
202 IsUpdate := FileExists(ExpandConstant('{app}\{#MyAppExeName}'));
\r
205 function NotAnUpdate: Boolean;
\r
207 result := not IsUpdate;
\r
210 procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
\r
214 case CurUninstallStep of
\r
217 mRes := MsgBox('Do you want to remove your settings?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2)
\r
218 if mRes = IDYES then
\r
220 DelTree(ExpandConstant('{localappdata}')+'\GRNET',true,true,true);
\r
223 MsgBox ('Settings will not be removed', mbInformation, MB_OK);
\r
228 procedure BitmapImageOnClick(Sender: TObject);
\r
232 ShellExec('open', 'http://pithos.grnet.gr','', '', SW_SHOW, ewNoWait, ErrCode);
\r
235 procedure CreateTheWizardPages;
\r
238 Button, FormButton: TNewButton;
\r
239 BitmapImage,BitmapImage1: TBitmapImage;
\r
240 BitmapFileName: String;
\r
245 Page := CreateCustomPage(wpWelcome, 'GRNET Pithos+ Dev Build {#MyAppVersion}', 'Software License');
\r
246 BitmapFileName := ExpandConstant('{tmp}\grnet-logo.bmp');
\r
247 ExtractTemporaryFile(ExtractFileName(BitmapFileName));
\r
249 Page.Surface.Color := clWhite;
\r
250 BitmapImage := TBitmapImage.Create(Page);
\r
251 BitmapImage.AutoSize := True;
\r
252 BitmapImage.Bitmap.LoadFromFile(BitmapFileName);
\r
253 BitmapImage.Cursor := crHand;
\r
254 BitmapImage.Left := (Page.Surfacewidth - BitmapImage.Width) / 2;
\r
255 BitmapImage.Top := Page.Surface.Top;
\r
256 BitmapImage.OnClick := @BitmapImageOnClick;
\r
257 BitmapImage.Parent := Page.Surface;
\r
259 Memo := TMemo.Create(Page);
\r
260 Memo.Top := BitmapImage.Height;
\r
261 Memo.Width := Page.SurfaceWidth;
\r
262 Memo.Height := Page.SurfaceHeight - (BitmapImage.Height)
\r
263 Memo.ScrollBars := ssVertical;
\r
264 Memo.Text := 'This software is provided by GRNET S.A. "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall GRNET S.A. or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.';
\r
265 Memo.Parent := Page.Surface;
\r
267 Page := CreateCustomPage(wpInfoAfter, 'First Steps', 'Setup your account');
\r
268 BitmapFileName := ExpandConstant('{tmp}\account.bmp');
\r
269 ExtractTemporaryFile(ExtractFileName(BitmapFileName));
\r
271 Page.Surface.Color := clWhite;
\r
272 BitmapImage1 := TBitmapImage.Create(Page);
\r
273 BitmapImage1.width := Page.SurfaceWidth;
\r
274 BitmapImage1.height := PAge.SurfaceHeight;
\r
275 BitmapImage1.Bitmap.LoadFromFile(BitmapFileName);
\r
276 //BitmapImage1.Cursor := crHand;
\r
277 BitmapImage1.Left := 0 //(Page.Surfacewidth - BitmapImage.Width) / 2;
\r
278 BitmapImage1.Top := Page.Surface.Top;
\r
279 //BitmapImage1.OnClick := @BitmapImageOnClick;
\r
280 BitmapImage1.Parent := Page.Surface;
\r
282 LabelWz := Tlabel.Create(Page);
\r
284 LabelWz.Caption := 'To setup your account right click on the Pithos+ icon in the taskbar.';
\r
285 LabelWz.Parent := Page.Surface;
\r
288 procedure InitializeWizard;
\r
294 winHwnd := FindWindowByClassName('{#MyAppExeName}');
\r
295 if winHwnd<>0 then begin { no module found or ignored pressed}
\r
296 postmessage(winHwnd,WM_QUIT,0,0);
\r
300 CreateTheWizardPages;
\r
304 Filename: {tmp}\dotNetFx40_Client_setup.exe; Description: Install Microsoft .Net Framework 4.0; Parameters: /q /noreboot; Flags: skipifdoesntexist; Check: ShouldInstalldotNET40