--- AE/Setup/Windows/AEI.iss 2013/04/13 23:31:58 818 +++ AE/Setup/Windows/AEI.iss 2017/10/16 15:38:52 1079 @@ -1,5 +1,5 @@ #define AppId "{{B67333BB-1CF9-4EFD-A40B-E25B5CB4C8A7}}" -#define AppVersion "1" +#define AppVersion "1.3" #define AppLongName "Anniversary Edition of Oni" #define AppShortName "Anniversary-Edition-Setup" @@ -41,149 +41,40 @@ en.JavaNotFound=This program needs a Jav [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked -[Components] -Name: "JRE"; Description: "JRE" -Name: "AEI"; Description: "AEI" - [Dirs] Name: "{app}\AE"; Permissions: users-modify [Files] -Source: "AEInstaller2Updater.jar"; DestDir: "{app}\AE\AEInstaller"; Components: AEI -Source: "JRE\*"; DestDir: "{app}\AE\AEInstaller\JRE"; Excludes: ".svn"; Flags: createallsubdirs recursesubdirs onlyifdoesntexist; Components: JRE -Source: "AElogo.ico"; DestDir: "{app}\AE\AEInstaller"; Components: AEI +Source: "AEInstaller2Updater.jar"; DestDir: "{app}\AE\AEInstaller" +Source: "JRE\*"; DestDir: "{app}\AE\AEInstaller\JRE"; Excludes: ".svn"; Flags: createallsubdirs recursesubdirs onlyifdoesntexist +Source: "AElogo.ico"; DestDir: "{app}\AE\AEInstaller" [Icons] -Name: "{app}\AE\AEInstaller2"; Filename: "{app}\AE\AEInstaller\JRE\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; IconFilename: "{app}\AE\AEInstaller\AElogo.ico"; Parameters: "-Dsun.java2d.d3d=false -jar bin\AEInstaller2.jar"; Check: not IsJavaInstalled -Name: "{app}\AE\AEInstaller2Updater"; Filename: "{app}\AE\AEInstaller\JRE\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; IconFilename: "{app}\AE\AEInstaller\AElogo.ico"; Parameters: "-Dsun.java2d.d3d=false -jar AEInstaller2Updater.jar"; Check: not IsJavaInstalled -Name: "{group}\AEInstaller 2"; Filename: "{app}\AE\AEInstaller\JRE\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; IconFilename: "{app}\AE\AEInstaller\AElogo.ico"; Parameters: "-Dsun.java2d.d3d=false -jar bin\AEInstaller2.jar"; Check: not IsJavaInstalled -Name: "{commondesktop}\AEInstaller 2"; Filename: "{app}\AE\AEInstaller\JRE\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; IconFilename: "{app}\AE\AEInstaller\AElogo.ico"; Parameters: "-Dsun.java2d.d3d=false -jar bin\AEInstaller2.jar"; Tasks: desktopicon; Check: not IsJavaInstalled -Name: "{app}\AE\AEInstaller2"; Filename: "{code:GetJavaPath}\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; IconFilename: "{app}\AE\AEInstaller\AElogo.ico"; Parameters: "-Dsun.java2d.d3d=false -jar bin\AEInstaller2.jar"; Check: IsJavaInstalled -Name: "{app}\AE\AEInstaller2Updater"; Filename: "{code:GetJavaPath}\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; IconFilename: "{app}\AE\AEInstaller\AElogo.ico"; Parameters: "-Dsun.java2d.d3d=false -jar AEInstaller2Updater.jar"; Check: IsJavaInstalled -Name: "{group}\AEInstaller 2"; Filename: "{code:GetJavaPath}\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; IconFilename: "{app}\AE\AEInstaller\AElogo.ico"; Parameters: "-Dsun.java2d.d3d=false -jar bin\AEInstaller2.jar"; Check: IsJavaInstalled -Name: "{commondesktop}\AEInstaller 2"; Filename: "{code:GetJavaPath}\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; IconFilename: "{app}\AE\AEInstaller\AElogo.ico"; Parameters: "-Dsun.java2d.d3d=false -jar bin\AEInstaller2.jar"; Tasks: desktopicon; Check: IsJavaInstalled +Name: "{app}\AE\AEInstaller2"; Filename: "{app}\AE\AEInstaller\JRE\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; IconFilename: "{app}\AE\AEInstaller\AElogo.ico"; Parameters: "-Dsun.java2d.d3d=false -jar bin\AEInstaller2.jar" +Name: "{app}\AE\AEInstaller2Updater"; Filename: "{app}\AE\AEInstaller\JRE\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; IconFilename: "{app}\AE\AEInstaller\AElogo.ico"; Parameters: "-Dsun.java2d.d3d=false -jar AEInstaller2Updater.jar" +Name: "{group}\AEInstaller 2"; Filename: "{app}\AE\AEInstaller\JRE\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; IconFilename: "{app}\AE\AEInstaller\AElogo.ico"; Parameters: "-Dsun.java2d.d3d=false -jar bin\AEInstaller2.jar" +Name: "{commondesktop}\AEInstaller 2"; Filename: "{app}\AE\AEInstaller\JRE\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; IconFilename: "{app}\AE\AEInstaller\AElogo.ico"; Parameters: "-Dsun.java2d.d3d=false -jar bin\AEInstaller2.jar"; Tasks: desktopicon [Run] -Filename: "{app}\AE\AEInstaller\JRE\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; Parameters: "-Dsun.java2d.d3d=false -jar AEInstaller2Updater.jar"; Flags: runasoriginaluser; Check: not IsJavaInstalled -Filename: "{code:GetJavaPath}\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; Parameters: "-Dsun.java2d.d3d=false -jar AEInstaller2Updater.jar"; Flags: runasoriginaluser; Check: IsJavaInstalled +Filename: "{app}\AE\AEInstaller\JRE\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; Parameters: "-Dsun.java2d.d3d=false -jar AEInstaller2Updater.jar"; Flags: runasoriginaluser; BeforeInstall: WriteProxyData [Code] var - javaPath: String; + PageUseProxy: TInputOptionWizardPage; + PageProxyData: TInputQueryWizardPage; -procedure DecodeVersion (verstr: String; var verint: array of Integer); -var - i,p: Integer; s: string; -begin - // initialize array - verint := [0,0,0,0]; - i := 0; - while ((Length(verstr) > 0) and (i < 4)) do - begin - p := pos ('.', verstr); - if p > 0 then - begin - if p = 1 then s:= '0' else s:= Copy (verstr, 1, p - 1); - verint[i] := StrToInt(s); - i := i + 1; - verstr := Copy (verstr, p+1, Length(verstr)); - end - else - begin - verint[i] := StrToInt (verstr); - verstr := ''; - end; - end; - -end; - -function CompareVersion (ver1, ver2: String) : Integer; -var - verint1, verint2: array of Integer; - i: integer; -begin - SetArrayLength (verint1, 4); - DecodeVersion (ver1, verint1); - - SetArrayLength (verint2, 4); - DecodeVersion (ver2, verint2); - - Result := 0; i := 0; - while ((Result = 0) and ( i < 4 )) do - begin - if verint1[i] > verint2[i] then - Result := 1 - else - if verint1[i] < verint2[i] then - Result := -1; - i := i + 1; - end; - -end; - -procedure CheckJavaRuntime(); -var - W6432: Boolean; - Res: Boolean; - JavaVer: String; -begin - W6432 := False; - Res := RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', JavaVer); - if (Res = False) and IsWin64() then - begin - Res := RegQueryStringValue(HKLM32, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', JavaVer); - W6432 := Res; - end; - if Res = True then - begin - if Length( JavaVer ) > 0 then - begin - if CompareVersion(JavaVer, '{#MinJavaVersion}') >= 0 then - begin - if W6432 then - Res := RegQueryStringValue(HKLM32, 'SOFTWARE\JavaSoft\Java Runtime Environment\'+JavaVer, 'JavaHome', javaPath) - else - Res := RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment\'+JavaVer, 'JavaHome', javaPath); - end; - end; - end; -end; - -function IsJavaInstalled(): Boolean; -begin - Result := Length(javaPath) > 0; -end; - -function GetJavaPath(Param: String): String; -begin - Result := javaPath; -end; - -function InitializeSetup(): Boolean; -begin - CheckJavaRuntime(); - Result := True; -end; procedure InitializeWizard(); -var - Components : TNewCheckListbox; - i : integer; begin - Components := WizardForm.ComponentsList; - i := Components.Items.IndexOf('JRE'); - if i <> -1 then - begin - Components.ItemEnabled[i] := false; - Components.Checked[i] := not IsJavaInstalled(); - end; - i := Components.Items.IndexOf('AEI'); - if i <> -1 then - begin - Components.ItemEnabled[i] := false; - Components.Checked[i] := true; - end; + PageUseProxy := CreateInputOptionPage(wpSelectTasks, 'Internet connection type', '', 'Do you require a proxy to connect to the internet?', true, false); + PageUseProxy.Add('Direct connection'); + PageUseProxy.Add('Use proxy'); + PageUseProxy.Values[0] := true; + + PageProxyData := CreateInputQueryPage(PageUseProxy.ID, 'Proxy data', '', 'Please enter the data required to connect to your proxy.'); + PageProxyData.Add('Hostname or IP:', False); + PageProxyData.Add('Port:', False); end; function DirOk(Path: String): boolean; @@ -206,16 +97,37 @@ begin end; +function EnterProxyData(): Boolean; +begin + Result := PageUseProxy.SelectedValueIndex = 1; +end; + function ShouldSkipPage(PageID: Integer): Boolean; begin - Result := PageID = wpSelectComponents; + Result := false; + if (PageID = PageProxyData.ID) then + Result := not EnterProxyData(); end; + function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String; begin Result := MemoUserInfoInfo + NewLine; Result := Result + MemoDirInfo + NewLine; Result := Result + MemoGroupInfo + NewLine; Result := Result + MemoTasksInfo + NewLine; + + if (EnterProxyData()) then + Result := Result + NewLine + 'Set proxy configuration'; end; + +procedure WriteProxyData(); +begin + if (EnterProxyData()) then + begin + SaveStringToFile(ExpandConstant('{app}') + '\AE\AEInstaller\AEI-ProxySettings.xml', + 'true'+PageProxyData.Values[0]+''+PageProxyData.Values[1]+'', + False); + end; +end;