IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils Delphi Discussion :

[Inno Setup] verifier si java est installé et le telecharger si besoin


Sujet :

Outils Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 10
    Points : 8
    Points
    8
    Par défaut [Inno Setup] verifier si java est installé et le telecharger si besoin
    Bonjour à tous, voici mon problème:
    Afin d'alléger le poids de mon setup je souhaiterai ne plus embarquer le jre de java a l'intérieur mais le télécharger depuis un site distant si il n'est pas installé sur la machine cliente.
    Voici ce que j'ai réussi a faire pour le moment (en m'inspirant, voire en copier/collant) a partir d'un autre topic de ce forum.
    En gros, j'arrive a aller voir dans le registre si la version installé de java est supérieur à 1.5.
    J'ai également trouvé dans ISTOOLS le moyen de lancer le téléchargement de java depuis un site distant juste avant de lancer l'install (avec la fonction NextClickButton) le pb c'est que dans ce cas, ca me lance le téléchargement systématique de java, or je voudrai ne le lancer que si java n'est pas installé.

    Voici mon code, merci d'avance a tous ceux qui voudront bien se pencher sur mon problème.

    Bonne journée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    ; 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={{10B9B870-1206-4511-AEA8-90EFCAE15E84}}
    AppName=AutoBackup
    AppVerName=AutoBackup 1.6
    AppPublisher=SimsCoprs
    DefaultDirName={pf}\AutoBackup
    DefaultGroupName=AutoBackup
    AllowNoIcons=true
    OutputDir=E:\Mes Documents\eclipse\setup
    OutputBaseFilename=setup_AutoBackup
    SetupIconFile=E:\Mes Documents\eclipse\workspace perso\AutoBackup\Images\LogoPrincipal.ico
    Compression=lzma
    SolidCompression=true
    ;logo à utiliser sur la page d'acceuil du setup
    ;copyright Ruskof    164*313
    WizardImageFile=E:\Mes Documents\eclipse\workspace perso\AutoBackup\Images\SetupAcceuil.bmp
    ;logo à utiliser dans les fenetre suivantes      111*113
    WizardSmallImageFile=E:\Mes Documents\eclipse\workspace perso\AutoBackup\Images\SetupPetit.bmp
    ShowLanguageDialog=auto
     
    [Languages]
    Name: french; MessagesFile: compiler:Languages\French.isl
     
    [Tasks]
    Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
    Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
    Name: Verficiation_Java; Description: Vérifie la presence de java; Flags: checkedonce; Check: NeedInstalljava
     
     
    [Files]
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\AutoBackup.jar; DestDir: {app}; Flags: ignoreversion
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\AutoBackup.exe; DestDir: {app}; Flags: ignoreversion
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\tasklist.exe; DestDir: {app}; Flags: ignoreversion
     
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\Database\AUTOBACKUP.FDB; DestDir: {app}\Database; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\Database\script\database.sql; DestDir: {app}\Database\script; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\IniFile\*; DestDir: {app}\IniFile; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\lib\*; DestDir: {app}\lib; Flags: ignoreversion recursesubdirs createallsubdirs
    ;Source: E:\Mes Documents\eclipse\jre-6u20-windows-i586-s.exe; DestDir: {app}\tools; DestName: jre-6u20-windows-i586-s.exe; Flags: ignoreversion
     
    [Icons]
    Name: {group}\AutoBackup; Filename: {app}\AutoBackup.exe
    Name: {group}\{cm:UninstallProgram,AutoBackup}; Filename: {uninstallexe}
    Name: {commondesktop}\AutoBackup; Filename: {app}\AutoBackup.exe; WorkingDir: {app}; Tasks: desktopicon
    Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\AutoBackup; Filename: {app}\AutoBackup.exe; WorkingDir: {app}; Tasks: quicklaunchicon
     
     
     
    [Run]
    Filename: {app}\tools\jre6U21.exe; Description: {cm:LaunchProgram,Java}; Parameters: "/lang=1036 /s /v""/qf! IEXPLORER=1 MOZILLA=1 REBOOT=Suppress JAVAUPDATE=0 WEBSTARTICON=0 SYSTRAY=0"""; WorkingDir: {app}\tools; Flags: skipifdoesntexist postinstall shellexec skipifsilent; Languages: ; Check: NeedInstalljava
    Filename: {app}\AutoBackup.exe; Description: {cm:LaunchProgram,AutoBackup}; Flags: shellexec postinstall skipifsilent; Tasks: ; Languages: 
    [_ISToolDownload]
    Source: http://ovh.dl.sourceforge.net/project/autobackupbysim/tools/jre-6u20-windows-i586-s.exe; DestDir: {app}\tools; DestName: jre6U21.exe
     
    [ Code]
    Var
      Versjava : string;
     java : boolean;
    function InitializeSetup(): Boolean;
     
    Begin
     
      Result := True;
      // recherche dans la BDR la version de java installé
      if (RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', Versjava) = true) then
          begin
             // si la version installée est inf ou = à v1.5 on install la v1.6
             if CompareStr(Versjava,'1.5') < 0  then
               java := False
              else
              java:=True;
     
          end;
    end;
     
     
    function NeedInstalljava(CurPage: Integer): Boolean;
     begin
     
        if (java=false) then
    		begin
     
     
    		Result := istool_download(CurPage);
     
    		end;
        Result := java;
     
     end;
    // Function generated by ISTool.
    function NextButtonClick(CurPage: Integer): Boolean;
     
    	begin
    		if (java=false) then
    		begin
    		PageCourante:=CurPage;
    		Result := istool_download(CurPage);
    		end;
    	end;

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 10
    Points : 8
    Points
    8
    Par défaut un element de réponse
    Re bonjour à tous, après bien des essais, voici ce que j'ai réussi a faire.
    Merci de vos remarque éventuelle...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    ; 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={{10B9B870-1206-4511-AEA8-90EFCAE15E84}}
    AppName=AutoBackup
    AppVerName=AutoBackup 1.7
    AppPublisher=SimsCoprs
    DefaultDirName={pf}\AutoBackup
    DefaultGroupName=AutoBackup
    AllowNoIcons=true
    OutputDir=E:\Mes Documents\eclipse\setup
    OutputBaseFilename=setup_AutoBackup
    SetupIconFile=E:\Mes Documents\eclipse\workspace perso\AutoBackup\Images\LogoPrincipal.ico
    Compression=lzma
    SolidCompression=true
    ;logo à utiliser sur la page d'acceuil du setup
    ;copyright Ruskof    164*313
    WizardImageFile=E:\Mes Documents\eclipse\workspace perso\AutoBackup\Images\SetupAcceuil.bmp
    ;logo à utiliser dans les fenetre suivantes      111*113
    WizardSmallImageFile=E:\Mes Documents\eclipse\workspace perso\AutoBackup\Images\SetupPetit.bmp
    ShowLanguageDialog=auto
     
    [Languages]
    Name: french; MessagesFile: compiler:Languages\French.isl
     
    [Tasks]
    Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
    Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
     
     
    [Files]
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\AutoBackup.jar; DestDir: {app}; Flags: ignoreversion
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\AutoBackup.exe; DestDir: {app}; Flags: ignoreversion
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\tasklist.exe; DestDir: {app}; Flags: ignoreversion
     
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\Database\AUTOBACKUP.FDB; DestDir: {app}\Database; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\Database\script\database.sql; DestDir: {app}\Database\script; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\IniFile\*; DestDir: {app}\IniFile; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\lib\*; DestDir: {app}\lib; Flags: ignoreversion recursesubdirs createallsubdirs
    ;Source: E:\Mes Documents\eclipse\jre-6u20-windows-i586-s.exe; DestDir: {app}\tools; DestName: jre-6u20-windows-i586-s.exe; Flags: ignoreversion
     
    [Icons]
    Name: {group}\AutoBackup; Filename: {app}\AutoBackup.exe
    Name: {group}\{cm:UninstallProgram,AutoBackup}; Filename: {uninstallexe}
    Name: {commondesktop}\AutoBackup; Filename: {app}\AutoBackup.exe; WorkingDir: {app}; Tasks: desktopicon
    Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\AutoBackup; Filename: {app}\AutoBackup.exe; WorkingDir: {app}; Tasks: quicklaunchicon
     
     
     
    [Run]
    ;Filename: {app}\tools\jre6U21.exe; Description: {cm:LaunchProgram,Java}; WorkingDir: {app}\tools; Flags: skipifdoesntexist nowait; Languages: ; Check: NeedInstalljava
    ;Filename: {app}\tools\jre6U21.exe; Description: {cm:LaunchProgram,Java}; Parameters: "/lang=1036 /s /v""/qf! IEXPLORER=1 MOZILLA=1 REBOOT=Suppress JAVAUPDATE=0 WEBSTARTICON=0 SYSTRAY=0"""; WorkingDir: {app}\tools; Flags: skipifdoesntexist nowait; Languages: ; Tasks:
    Filename: {app}\AutoBackup.exe; Description: {cm:LaunchProgram,AutoBackup}; Flags: shellexec postinstall
     
    [_ISToolDownload]
    Source: http://ovh.dl.sourceforge.net/project/autobackupbysim/tools/jre-6u21-windows-i586-s.exe; DestDir: {app}\tools; DestName: jre6U21.exe; Tasks: ; Languages: 
     
    [ Code]
    Var
    Versjava : string;
    java_installe : boolean;
    ExeFile : String;
    ErrorCode: Integer;
     
    function InitializeSetup(): Boolean;
     
    Begin
     
      Result := True;
      // recherche dans la BDR la version de java installé
      if (RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', Versjava) = true) then
          begin
             // si la version installée est inf ou = à v1.5 on install la v1.6
             if CompareStr(Versjava,'1.5') <= 0  then
               java_installe := False
               else
               java_installe:=True;
    		end;
    end;
     
     
     
     
    function NeedInstalljava(): Boolean;
     begin
        Result := java_installe;
     end;
     
    function NextButtonClick(CurPage: Integer): Boolean;
     
    begin
    		if (java_installe=False) then
    		begin
    			//MsgBox('téléchargement de java', mbCriticalError, MB_OK);
    			Result:=istool_download(CurPage);
     
    		end;
    		if (java_installe=true) then
    		begin
    			//MsgBox('pas besoin de telecharger java', mbCriticalError, MB_OK);
    			Result:=True;
    		end;
     
    	if (CurPage=10) and (java_installe=False) then
    	begin
    		//MsgBox('téléchargement de java fait lancement de linstalation', mbCriticalError, MB_OK);
    		ExeFile := ExpandConstant('{app}\tools\jre6U21.exe');
     
    		if FileExists(ExeFile) then
    		begin
    			MsgBox('Java va maintenant etre installé veuillez attendre la fin de l installation avant de cliquer sur Suivant', mbCriticalError, MB_OK);
    			ShellExec('', ExeFile, '/passive', '', SW_SHOW, ewWaitUntilTerminated, ErrorCode);
    			Result:=True;
     
    		end;
    	end;
    	if (CurPage<>wpInfoBefore) and (CurPage<>wpWelcome) then
    	begin
    		Result:=True;
    	end;
    end;

  3. #3
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 419
    Points
    1 419
    Par défaut
    j'utilise pas ISTools, je peux te dire qu'il est mieux de télécharger dans le dossier temporaire, ton check sur le run inutile car il y a le flags skipifdoesntexist donc tu test et télécharge si besoin dans la fonction NextButtonClick
    tu devrais afficher un message avertissant l'utilisateur du besoin de cette application et le laisser choisir si il veut que sa se fasse automatiquement. Ainsi que la version que tu va mettre car forcément un jour elle sera dépassé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    [Run]
    Filename: {tmp}\jre6U21.exe; Description: {cm:LaunchProgram,Java}; Parameters: "/lang=1036 /s /v""/qf! IEXPLORER=1 MOZILLA=1 REBOOT=Suppress JAVAUPDATE=0 WEBSTARTICON=0 SYSTRAY=0"""; WorkingDir: {tmp}; Flags: skipifdoesntexist postinstall shellexec skipifsilent;
     
    [_ISToolDownload]
    Source: http://ovh.dl.sourceforge.net/project/autobackupbysim/tools/jre-6u20-windows-i586-s.exe; DestDir: {tmp}; DestName: jre6U21.exe
     
    [ Code]
    // Function generated by ISTool.
    function NextButtonClick(CurPage: Integer): Boolean;
    begin
      Result := true;
      if CurPage = wpReady then
        if not RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', Versjava) or (CompareStr(Versjava,'1.5') < 0) then
              Result := istool_download(CurPage);
    end;
    pas testé.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 10
    Points : 8
    Points
    8
    Par défaut j suis sur la voie
    Re bonjour,
    tt d'abord, un grand merci a toi ouiouioui

    Voici ce que ca donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    ; Script generated by the Inno Setup Script Wizard.
    ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
     
    [_ISToolDownload1]
    Source: http://ovh.dl.sourceforge.net/project/autobackupbysim/tools/Firebird-2.0.3.12981-1-Win32.exe; DestDir: {tmp}; DestName: FbServer.exe; Check: NeedInstallFirebird
     
    [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={{10B9B870-1206-4511-AEA8-90EFCAE15E84}}
    AppName=AutoBackup
    AppVerName=AutoBackup 1.7
    AppPublisher=SimsCoprs
    DefaultDirName={pf}\AutoBackup
    DefaultGroupName=AutoBackup
    AllowNoIcons=true
    OutputDir=E:\Mes Documents\eclipse\setup
    OutputBaseFilename=setup_AutoBackup
    SetupIconFile=E:\Mes Documents\eclipse\workspace perso\AutoBackup\Images\LogoPrincipal.ico
    Compression=lzma
    SolidCompression=true
    ;logo à utiliser sur la page d'acceuil du setup
    ;copyright Ruskof    164*313
    WizardImageFile=E:\Mes Documents\eclipse\workspace perso\AutoBackup\Images\SetupAcceuil.bmp
    ;logo à utiliser dans les fenetre suivantes      111*113
    WizardSmallImageFile=E:\Mes Documents\eclipse\workspace perso\AutoBackup\Images\SetupPetit.bmp
    ShowLanguageDialog=auto
     
    [Languages]
    Name: french; MessagesFile: compiler:Languages\French.isl
     
    [Tasks]
    Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
    Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
     
     
    [Files]
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\AutoBackup.jar; DestDir: {app}; Flags: ignoreversion
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\AutoBackup.exe; DestDir: {app}; Flags: ignoreversion
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\tasklist.exe; DestDir: {app}; Flags: ignoreversion
     
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\Database\AUTOBACKUP.FDB; DestDir: {app}\Database; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\Database\script\database.sql; DestDir: {app}\Database\script; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\IniFile\*; DestDir: {app}\IniFile; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\lib\*; DestDir: {app}\lib; Flags: ignoreversion recursesubdirs createallsubdirs
    ;Source: E:\Mes Documents\eclipse\jre-6u20-windows-i586-s.exe; DestDir: {app}\tools; DestName: jre-6u20-windows-i586-s.exe; Flags: ignoreversion
     
    [Icons]
    Name: {group}\AutoBackup; Filename: {app}\AutoBackup.exe
    Name: {group}\{cm:UninstallProgram,AutoBackup}; Filename: {uninstallexe}
    Name: {commondesktop}\AutoBackup; Filename: {app}\AutoBackup.exe; WorkingDir: {app}; Tasks: desktopicon
    Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\AutoBackup; Filename: {app}\AutoBackup.exe; WorkingDir: {app}; Tasks: quicklaunchicon
     
     
     
    [Run]
    Filename: {app}\AutoBackup.exe; Description: {cm:LaunchProgram,AutoBackup}; Flags: shellexec postinstall
     
    [_ISToolDownload]
    Source: http://ovh.dl.sourceforge.net/project/autobackupbysim/tools/jre-6u21-windows-i586-s.exe; DestDir: {tmp}; DestName: jre6U21.exe
     
    [ Code]
    Var
    Versjava : string;
    java_installe : boolean;
     
    VersFirebird : string;
    Firebird_installe : boolean;
     
    ExeFile : String;
    ErrorCode: Integer;
     
     
    Page: TWizardPage;
    Lbl,Lbl1: TLabel;
     
     
     
    function InitializeSetup(): Boolean;
     
    Begin
     
      Result := True;
      // recherche dans la BDR la version de java installé
      if (RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', Versjava) = true) then
          begin
             // si la version installée est inf ou = à v1.5 on install la v1.6
             if CompareStr(Versjava,'1.5') <= 0  then
               java_installe := False
               else
               java_installe:=True;
    		end;
     
     
    end;
     
    function NeedInstalljava(): Boolean;
     begin
        Result := java_installe;
     end;
     
     
     
    function NextButtonClick(CurPage: Integer): Boolean;
     
    begin
    		if (java_installe=False) then
    		begin
     
    			Result:=istool_download(CurPage);
     
    		end;
    		if (java_installe=true) then
    		begin
     
    			Result:=True;
    		end;
     
    	if (CurPage=100) then
    	begin
    	if (java_installe=false) then
    	begin
    	MsgBox('Le logiciel va télécharger et installer java pour vous...', mbInformation, MB_OK);
    	end;
    	if (java_installe=true) then
    	begin
    	MsgBox('Java est correctement installé, poursuite de l''installation', mbInformation, MB_OK);
    	end;
    	end;
     
     
    	if (CurPage=10) and (java_installe=False) then
    	begin
    		ExeFile := ExpandConstant('{tmp}\jre6U21.exe');
     
    		if FileExists(ExeFile) then
    		begin
    			MsgBox('Java va maintenant etre installé. L''installation de votre logiciel se fera juste après :)', mbInformation, MB_OK);
    			ShellExec('', ExeFile, '/passive', '', SW_SHOW, ewWaitUntilTerminated, ErrorCode);
    			Result:=True;
     
    		end;
    	end;
    	if (CurPage<>wpInfoBefore) and (CurPage<>wpWelcome) then
    	begin
    		Result:=True;
    	end;
    end;
     
     
     
    // Procédure de construction des pages personnelles
    procedure CreateTheWizardPages;
     
    begin
      { TButton and others }
     
      Page := CreateCustomPage(wpWelcome, 'Vérification Préalable', 'Vérification de la présence de Java ');
     
      Lbl := TLabel.Create(Page);
      Lbl.Top := ScaleY(8);
      Lbl.Caption := 'En cliquant sur le bouton suivant,';
      Lbl.AutoSize := True;
      Lbl.Parent := Page.Surface;
     
      Lbl1 := TLabel.Create(Page);
      Lbl1.Top := Lbl.Top + Lbl.Height +ScaleY(8);
      Lbl1.Caption := 'nous allons vérifier pour vous la présence de Java ';
      Lbl1.AutoSize := True;
      Lbl1.Parent := Page.Surface;
    end;
     
    procedure InitializeWizard();
    begin
      CreateTheWizardPages;
    end;

    Au risque de de paraitre embetant, j'ai voulu continuer sur cette voie et modifiant une peu le code, en gros ce que je voudrai c'est la chose suivante:
    Dans mon nouveau code, j'ai reussi a créer une page perso basique où je previen l'utilisateur que je vais verifier la presence de java, en cliquant sur le bouton suivant, je peut afficher un message qui dit si oui ou non il est installé et si oui ou non il doit etre telechargé mais la fenetre de telechargement apparait tjrs au meme moment (juste avant l'installation (a cause du parametre "Result:=istool_download(CurPage);")

    J'ai bien essayé, a la place de mettre "CurPage" de faire un if mais dès que je change le parametre, je n'ai plus la fenetre de techargement.
    En gros ce que que voudrai c'est que cette fenetre de telechargement se mette juste apres ma page perso, est ce possible?


    @ouiouioui
    J'ai bien essayé de faire avec ta methode, mais si je change l'ID de la page, ca ne fonctionne plus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function NextButtonClick(CurPage: Integer): Boolean;
    begin
      Result := true;
      if CurPage = wpReady then
        if not RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', Versjava) or (CompareStr(Versjava,'1.5') < 0) then
              Result := istool_download(CurPage);
    end;

    Allé et derniere questions pour la route, dans la section
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [_ISToolDownload]
    Source: http://ovh.dl.sourceforge.net/project/autobackupbysim/tools/jre-6u21-windows-i586-s.exe; DestDir: {tmp}; DestName: jre6U21.exe
    Est il possible de mettre plusieurs lien mais de n'en télécharger qu'un seul si besoin, pour l'instant, si j'en met 2, même avec des Checkxxxx les 2 fichiers sont téléchargés

    Merci encore
    voilou, comme d'hab, tte idée est la bienvenue.
    Merci d'avance.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 10
    Points : 8
    Points
    8
    Par défaut [RESOLUT] c'est bon (a prioris)
    Alors, voila, en furetant sur internet, je suis tombé par hasard sur un fichier exemple où j'ai pu trouvé tt ce que je voulais.
    Donc au final, le programme fait les chose suivante:
    A l'intialisation, il verifie si java est installé en V1.6 et si firebird est installé egalement.
    Si oui, on fait le le setup normalement, si non, on telecharge ce dont il y a besoin puis on lance l'execution des setup de java et/ ou firebird.
    Voila.

    Merci encore pour voter aide precieuse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    ; Script generated by the Inno Setup Script Wizard.
    ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
    //activation des outils ISTOOLS
    [_ISTool]
    EnableISX=true
     
    [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={{10B9B870-1206-4511-AEA8-90EFCAE15E84}}
    AppName=AutoBackup
    AppVerName=AutoBackup 1.8
    AppPublisher=SimsCoprs
    DefaultDirName={pf}\AutoBackup
    DefaultGroupName=AutoBackup
    AllowNoIcons=true
    OutputDir=E:\Mes Documents\eclipse\setup
    OutputBaseFilename=setup_AutoBackup
    SetupIconFile=E:\Mes Documents\eclipse\workspace perso\AutoBackup\Images\LogoPrincipal.ico
    Compression=lzma
    SolidCompression=true
    ;logo à utiliser sur la page d'acceuil du setup
    ;copyright Ruskof    164*313
    WizardImageFile=E:\Mes Documents\eclipse\workspace perso\AutoBackup\Images\SetupAcceuil.bmp
    ;logo à utiliser dans les fenetre suivantes      111*113
    WizardSmallImageFile=E:\Mes Documents\eclipse\workspace perso\AutoBackup\Images\SetupPetit.bmp
    ShowLanguageDialog=auto
     
    [Languages]
    Name: french; MessagesFile: compiler:Languages\French.isl
     
    [Tasks]
    Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
    Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
     
     
    [Files]
     
    // a mettre OBLIGATOIREMENT pour permettre le telechargement des fichiers pendant le setup
    Source: C:\Program Files\ISTool\isxdl.dll; Flags: dontcopy
    ////////////////////////////////////////////////////////////
     
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\AutoBackup.jar; DestDir: {app}; Flags: ignoreversion
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\AutoBackup.exe; DestDir: {app}; Flags: ignoreversion
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\tasklist.exe; DestDir: {app}; Flags: ignoreversion
     
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\Database\AUTOBACKUP.FDB; DestDir: {app}\Database; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\Database\script\database.sql; DestDir: {app}\Database\script; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\IniFile\*; DestDir: {app}\IniFile; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: E:\Mes Documents\eclipse\workspace perso\AutoBackup\lib\*; DestDir: {app}\lib; Flags: ignoreversion recursesubdirs createallsubdirs
     
     
    [Icons]
    Name: {group}\AutoBackup; Filename: {app}\AutoBackup.exe
    Name: {group}\{cm:UninstallProgram,AutoBackup}; Filename: {uninstallexe}
    Name: {commondesktop}\AutoBackup; Filename: {app}\AutoBackup.exe; WorkingDir: {app}; Tasks: desktopicon
    Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\AutoBackup; Filename: {app}\AutoBackup.exe; WorkingDir: {app}; Tasks: quicklaunchicon
     
     
     
    [Run]
    Filename: {app}\AutoBackup.exe; Description: {cm:LaunchProgram,AutoBackup}; Flags: shellexec postinstall
     
     
    [ Code]
    Var
    Versjava : string;
    java_installe : boolean;
     
    VersFirebird : string;
    Firebird_installe : boolean;
     
    Page: TWizardPage;
    Lbl,Lbl1: TLabel;
     
    downloadNeeded: boolean;
     
    // Déclaration des procedure d'utilisation de la dll pour le telechargement
    procedure isxdl_AddFile(URL, Filename: PChar);
    external 'isxdl_AddFile@files:isxdl.dll stdcall';
    function isxdl_DownloadFiles(hWnd: Integer): Integer;
    external 'isxdl_DownloadFiles@files:isxdl.dll stdcall';
    function isxdl_SetOption(Option, Value: PChar): Integer;
    external 'isxdl_SetOption@files:isxdl.dll stdcall';
     
    //définition des url des fichiers à telecharger	
    const
    javaURL = 'http://ovh.dl.sourceforge.net/project/autobackupbysim/tools/jre-6u21-windows-i586-s.exe';
    const
    FirebirdURL = 'http://ovh.dl.sourceforge.net/project/autobackupbysim/tools/Firebird-2.0.3.12981-1-Win32.exe';
     
     
     
     
    function InitializeSetup(): Boolean;
     
    Begin
     
      Result := True;
      java_installe:=True;
      firebird_installe:=True;
      downloadNeeded:=False;
      // recherche dans la BDR la version de java installé
      if (RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', Versjava) = true) then
          begin
             // si la version installée est inf ou = à v1.5 on install la v1.6
             if CompareStr(Versjava,'1.5') <= 0  then
                begin
                java_installe := False
                isxdl_AddFile(javaURL, ExpandConstant('{tmp}\jre6U21.exe'));
                downloadNeeded := true
                end;
          end;
          //si la cle java n'existe pas, il faut obligatoirement l'installer
       if (RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', Versjava) = false) then
          begin
                java_installe := False
                isxdl_AddFile(javaURL, ExpandConstant('{tmp}\jre6U21.exe'));
                downloadNeeded := true
          end;
     
     
    	if (RegQueryStringValue(HKLM, 'SOFTWARE\Firebird Project\Firebird Server\Instances', 'DefaultInstance', VersFirebird) = false) then
          begin
            //si la cle de firebird n'existe pas dans la BDR, on active son telechargement
                firebird_installe := False
                isxdl_AddFile(FirebirdURL, ExpandConstant('{tmp}\fbServer.exe'));
                downloadNeeded := true;
          end;	
     
    end;
     
     
     
     
     
    function NextButtonClick(CurPage: Integer): Boolean;
     
    var
    hWnd: Integer;
    ResultCode: Integer;
     
    	begin
    		Result := true;
     
     
    		if CurPage = 100 then   //la valeur 100 correspond à l'ID de ma page où j'informe l'utilisateur que je verifie la presence de java et de firebird sur son ordi.
    		begin
    	    //initialisation du Handle de connection (permet entre autre de recuperer la liste des fichiers a telecharger
    			hWnd := StrToInt(ExpandConstant('{wizardhwnd}'));
     
    			// don't try to init isxdl if it's not needed because it will error on < ie 3
    			if downloadNeeded then
          begin
    		   //permet d'afficher des infos à destination de l'utilisateur
    			 isxdl_SetOption('label', 'Téléchargement Supplèmentaires');
    			 isxdl_SetOption('description', 'Java et/ou Firebird ont besoin d''être installé(s) sur votre ordinateur veuillez patienter...');
     
    			   if isxdl_DownloadFiles(hWnd) = 0 then // le telechargement à échoué, on retourne "Faux"
    			   Result := false;
    			end;
     
    			if (Result = true) and (java_installe = false) then  // si le resultat du telechargement est ok est que java a besoin d'etre installé
    			begin
    		      MsgBox('Java va maintenant s''installer, veuillez patienter...', mbInformation, MB_OK);
    				  if Exec(ExpandConstant('{tmp}\jre6U21.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
    					begin
    						// handle success if necessary; ResultCode contains the exit code
    						if not (ResultCode = 0) then //si resultCode n'est pas egal à 0, il y a eu une erreur ou bien l'utilisateur à arreter l'installation.
    							begin
    							MsgBox('Java est necessaire au fonctionnement du logiciel, si vous ne l''installez pas vous ne pourrez pas utiliser le logiciel ', mbInformation, MB_OK);
    							Result := true;  //on autorise quand meme la poursuite de l'instalation
    							end;
    					end
    				else
    					begin
    					// handle failure if necessary; ResultCode contains the error code
    					MsgBox('Java n''a pas pu s''installer, il vous faudra l''installer manuellement avant de pouvoir utiliser votre logiciel. ', mbInformation, MB_OK);
    					Result := true;   // on a pas reussi a lancer l'executable, mais on permet quand meme l'installation en prevenant l'utilisateur
    					end;
    			end;
     
    			if (Result = true) and (firebird_installe = false) then  // si le resultat du telechargement est ok est que firebird a besoin d'etre installé
    			begin
    		     MsgBox('Firebird va maintenant s''installer, veuillez patienter...', mbInformation, MB_OK);
    				if Exec(ExpandConstant('{tmp}\fbServer.exe'), '/silent', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
    					begin
    						// handle success if necessary; ResultCode contains the exit code
    						if not (ResultCode = 0) then //si resultCode n'est pas egal à 0, il y a eu une erreur ou bien l'utilisateur à arreter l'installation.
    							begin
    							Result := true;
    							end;
    					end
    				else
    					begin
    					// handle failure if necessary; ResultCode contains the error code
    					Result := true;  // on a pas reussi a lancer l'executable, mais on permet quand meme l'installation en prevenant l'utilisateur
    					end;
    			end;
     
    		end;
    	end;
     
     
     
    // Procédure de construction des pages personnelles
    procedure CreateTheWizardPages;
    // variables locales
     
    begin
      { TButton and others }
     
      Page := CreateCustomPage(wpWelcome, 'Vérification Préalable', 'Vérification de la présence de Java ');
     
      Lbl := TLabel.Create(Page);
      Lbl.Top := ScaleY(8);
      Lbl.Caption := 'En cliquant sur le bouton suivant,';
      Lbl.AutoSize := True;
      Lbl.Parent := Page.Surface;
     
      Lbl1 := TLabel.Create(Page);
      Lbl1.Top := Lbl.Top + Lbl.Height +ScaleY(8);
      Lbl1.Caption := 'Nous allons vérifier pour vous la présence de Java et de Firebird sur votre ordinateur ';
      Lbl1.AutoSize := True;
      Lbl1.Parent := Page.Surface;
    end;
     
    procedure InitializeWizard();
    begin
      CreateTheWizardPages;
    end;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/04/2009, 11h15
  2. Inno Setup: sélection du répertoire d'installation
    Par franckgar dans le forum Outils
    Réponses: 4
    Dernier message: 24/07/2007, 10h34
  3. Réponses: 4
    Dernier message: 13/04/2007, 14h15
  4. comment vérifier que Java est installé
    Par scarpat dans le forum Oracle
    Réponses: 3
    Dernier message: 16/06/2006, 14h31
  5. [Applet] Savoir si Java est installé ?
    Par MagicManu dans le forum Applets
    Réponses: 5
    Dernier message: 18/06/2004, 15h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo