Pessoal, O script abaixo não esta instalando o jre, não da erro,roda aparentemente tudo normal, onde esta erro no script?
[Setup]
AppName=JRE Setup
AppVersion=0.1
DefaultDirName=JRE Setup
[Languages]
Name: english; MessagesFile: compiler:Default.isl
[Files]
Source: jre-8u101-windows-x64 .exe; DestDir: {app} C:; DestName: JREInstall.exe; Check: IsWin64 AND InstallJava()
Source: jre-8u101-windows-i586.exe; DestDir: {app} C:; DestName: JREInstall.exe; Check: (NOT IsWin64) AND InstallJava()
[Run]
Filename: {app} C:\jre-8u101-windows-i586.exe; Parameters: /s; Flags: nowait runhidden runascurrentuser; Check: InstallJava()
[Code] 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 else Result := 0; i := i + 1; end; end;
function InstallJava() : Boolean; var ErrCode: Integer; JVer: String; InstallJ: Boolean; begin RegQueryStringValue(HKLM, ‘SOFTWARE\JavaSoft\Java Runtime Environment’, ‘CurrentVersion’, JVer); InstallJ := true; if Length( JVer ) > 0 then begin if CompareVersion(JVer, ‘1.8’) >= 0 then begin InstallJ := false; end; end; Result := InstallJ; end; E