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] ajouter l'installation de java


Sujet :

Outils Delphi

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 44
    Points
    44
    Par défaut [Inno Setup] ajouter l'installation de java
    Bonjour,

    J'ai un logiciel développé en java. Celui-ci ne tourne qu'à partir de java 1.5.
    Pour l'instant j'ai créé une installation standard avec le wizard de Inno Setup.
    Je souhaiterais que, pendant mon installation, je détecte si la version installée de java est compatible avec mon logiciel (donc au moins version 1.5) et si ce n'est pas le cas lancé l'installation du JRE java version 1.6.
    Si c'est possible, j'aimerais également différencié les cas suivant s'il on est sur windows, linux ou mac car dans ces 3 cas l'installation de java n'est pas la même. Sinon, il faudrait au moins que ça fonctionne sous windows.
    Donc si vous avez une idée de comment je peux faire ça, ce serait sympa de m'aider.

    Merci

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 56
    Points
    56
    Par défaut
    Bonsoir
    moi j'utilise ceci pour vérifier si une appli est présente (mais dans mon cas l'installation est stoppée)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function InitializeSetup(): Boolean;
    begin
      if RegKeyExists(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\TmUnitedForever_is1') = false then
        Result:=False
      else Result:=True
    end;
    on doit pouvoir créer une fonction qui lance l'installation de java (inclut dans ton setup) si il n'est pas sur la machine

    ou alors tu met une entrée dan la section [Run] mais dans ce cas la l'install se fera dans tous les cas

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 44
    Points
    44
    Par défaut
    Ce genre de code tu l'insère où?
    Parce que là, j'ai juste mes différentes sections dans mon fichier .iss et je ne suis pas sûr qu'il faille mettre ce code au même endroit.
    Et ta fonction, une fois écrite, tu fais appelles à elle où?

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 56
    Points
    56
    Par défaut
    he bien il faut le mettre dans la section [Code]
    et cette fonction en particulier n'a pas besoin d'être appelée, elle s'exécute à l'initialisation

    mais ce n'est qu'une piste pour vérifier la présence de java, je ne serais pas capable de donner tout ce que tu souhaite

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 44
    Points
    44
    Par défaut
    Quelqu'un aurait une autre solution à me proposer?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut
    Bonjour,

    Dis moi Mistic100 c'est normal que le code ne s'exécute même pas pour moi une fois que j'ajoute ta fonction?? sachant que moi aussi je travaille sur une application java et que java est déjà installée sur ma machine

    Merci d'avance pour ta réponse

  7. #7
    T-B
    T-B est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 69
    Points : 58
    Points
    58
    Par défaut
    pour tester la version de java installée voir sous

    [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
    "CurrentVersion"= "1.6"

    pour installer
    java16.exe /lang=1036 /s /v"/qb! IEXPLORER=1 MOZILLA=1 REBOOT=Suppress JAVAUPDATE=0 WEBSTARTICON=0 SYSTRAY=0"

    voici le code à adapter

    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
     
     
    [Files]
    Source: java16.exe; DestDir: "{tmp}"; Check: NeedInstalljava
     
    [RUN]
    Filename: {tmp}\java16.exe; Parameters: "/lang=1036 /s /v""/qb! IEXPLORER=1 MOZILLA=1 REBOOT=Suppress JAVAUPDATE=0 WEBSTARTICON=0 SYSTRAY=0"""; WorkingDir: {tmp}; Flags: skipifdoesntexist; Check: NeedInstalljava
     
    CODE]
    var
    java : boolean ;
     
     
    function InitializeSetup(): Boolean;
    Var
      Versjava : string;
    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 := true;
          end;
    end;
     
     
    function NeedInstalljava(): Boolean;
     begin
        Result := java;
     end;

  8. #8
    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
    pas besoin de revérifier la version dans run puisque il y a le flags skipifdoesntexist?
    tu initialise pas le résultat à false?
    pourquoi utiliser une variable global?
    et perso je le téléchargerai avec inno plutôt que de l'inclure si l'application est tourné vers le online

    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
     
    [Files]
    Source: java16.exe; DestDir: "{tmp}"; Check: NeedInstalljava
     
    [RUN]
    Filename: {tmp}\java16.exe; Parameters: "/lang=1036 /s /v""/qb! IEXPLORER=1 MOZILLA=1 REBOOT=Suppress JAVAUPDATE=0 WEBSTARTICON=0 SYSTRAY=0"""; WorkingDir: {tmp}; Flags: skipifdoesntexist;
     
    CODE]
    function NeedInstalljava(): Boolean;
    Var
      VersJava: string;
    Begin
      Result := False;
      // recherche dans la BDR la version de java installé
      if RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', VersJava) then
          begin
             // si la version installée est inf ou = à v1.5 on install la v1.6
             if CompareStr(VersJava, '1.5') < 0  then
               Result := True;
          end;
    end;

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Points : 24
    Points
    24
    Par défaut
    Petit déterrage du topic

    Je suis dans la même cas que ririrourou, j'ai ajouté la fonction de ouiouioui mais le JRE ne s'installe pas

    Je souhaiterai en plus détecter l'installation du service "Bonjour" de chez Apple.

    La clé à vérifier est la suivante HKEY_LOCAL_MACHINE\SOFTWARE\Apple Inc.\Bonjour (notamment les sous-clés "FileVersion" et "InstallDir").

    Le seul problème c'est que je ne sais pas comment lancer l'installation automatiquement (comme pour le JRE).

    Merci pour votre aide!!!

  10. #10
    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
    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
     
    [Files]
    Source: java16.exe; DestDir: "{tmp}"; Check: NeedInstalljava
     
    [RUN]
    Filename: {tmp}\java16.exe; Parameters: "/lang=1036 /s /v""/qb! IEXPLORER=1 MOZILLA=1 REBOOT=Suppress JAVAUPDATE=0 WEBSTARTICON=0 SYSTRAY=0"""; WorkingDir: {tmp}; Flags: skipifdoesntexist;
     
    CODE]
    function NeedInstalljava(): Boolean;
    Var
      VersJava: string;
    Begin
      Result := False;
      // recherche dans la BDR la version de java installé
      if RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', VersJava) then
      begin
         // si la version installée est inf ou = à v1.5 on install la v1.6
         if CompareStr(VersJava, '1.5') < 0  then
           Result := True;
       end
       else // pas de clefs trouvé donc java n'st pas installé on le met
         Result := True;
    end;
    essaye sa, j'ai rajouté si la clef existe pas on installe
    et les paramètre d'installation c bizarre les " j'ai pas testé

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Points : 24
    Points
    24
    Par défaut
    Super ça marche parfaitement!!!

    Reste que l'install du JRE se passe à la fin de l'installation, au moment de "Finalisation de l'installation...", donc ça donne l'impression que le programme est freezé.

    Ne serait-il pas possible de la lancer en même temps que celle la copie des fichiers sur le système par exemple ?

    Merci pour ton aide.

  12. #12
    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
    Tu peux oui via le code lancer avant la copie mais faudra gérer en code après la copie si l'installation est fini ou si faut attendre

    mais moi je désactiverai le bouton cancel et préviendrai l'utilisateur d'attendre la fin de l'installation des dépendances, c'est plus simple et puis sinon lors de l'install si l'utilisateur clique annuler les dépendances serai quand même installé!

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Points : 24
    Points
    24
    Par défaut
    Bon je suis arrivé à quelque chose de fonctionnel:

    > Copie des fichiers du programme

    Au moment de "Finalisation de l'installation...":

    Si JRE non installé
    > Freeze de l'installation et installation en background du JRE

    Ensuite, si Bonjour non installé
    > démarrage en parallèle de l'install de Bonjour

    L'installation fonctionne donc bien mais ce n'est pas très user friendly.

    Je poste le code de mon install :
    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
     
    ; 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={{74B44442-E74D-4C87-A593-6F3ED8CA5A55}
    AppName=monProgramme
    AppVerName=monProgramme 1.0
    AppPublisher=Entreprise
    AppPublisherURL=http://www.monProgramme.com/
    AppSupportURL=http://www.monProgramme.com/
    AppUpdatesURL=http://www.monProgramme.com/
    DefaultDirName={pf}\MonProgramme
    DefaultGroupName=monProgramme
    LicenseFile=C:\Users\Pierre\Desktop\Client\monProgramme-Computer\licence.txt
    OutputDir=C:\Users\Pierre\Desktop\Client\monProgramme-Computer\build
    OutputBaseFilename=Clic2DialSetup
    Compression=lzma
    SolidCompression=yes
     
    [Languages]
    Name: "english"; MessagesFile: "compiler:Default.isl"
    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: "C:\Users\Pierre\Desktop\Client\monProgramme-Computer\build\install\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
     
    [Icons]
    Name: "{group}\monProgramme"; Filename: "{app}\monProgramme.exe"
    Name: "{group}\{cm:ProgramOnTheWeb,monProgramme}"; Filename: "http://www.monProgramme.com/"
    Name: "{group}\{cm:UninstallProgram,monProgramme}"; Filename: "{uninstallexe}"
    Name: "{commondesktop}\monProgramme"; Filename: "{app}\monProgramme.exe"; IconFilename: {app}\icon.ico; IconIndex: 0; Tasks: desktopicon
    Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\monProgramme"; Filename: "{app}\monProgramme.exe"; Tasks: quicklaunchicon
     
    [Run]
    Filename: "{app}\monProgramme.exe"; Description: "{cm:LaunchProgram,monProgramme}"; Flags: nowait postinstall skipifsilent
     
     
    [Files]
    Source: jre-6u15-windows-i586.exe; DestDir: "{tmp}"; Check: NeedInstalljava
    Source: BonjourSetup.exe; DestDir: "{tmp}"; Check: NeedInstallBonjour
     
    [RUN]
    Filename: {tmp}\jre-6u15-windows-i586.exe; Parameters: "/lang=1036 /s /v""/qb! IEXPLORER=1 MOZILLA=1 REBOOT=Suppress JAVAUPDATE=0 WEBSTARTICON=0 SYSTRAY=0"""; WorkingDir: {tmp}; Flags: skipifdoesntexist;
    Filename: {tmp}\BonjourSetup.exe; WorkingDir: {tmp}; Flags: skipifdoesntexist;
     
    [ code]
    function NeedInstalljava(): Boolean;
    Var
      VersJava: string;
    Begin
      Result := False;
      // recherche dans la BDR la version de java installé
      if RegQueryStringValue(HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', VersJava) then
          begin
             // si la version installée est inf ou = à v1.6 on install la v1.6
             if CompareStr(VersJava, '1.6') < 0  then
               Result := True;
          end
      else // Pas de clef trouvée donc on installe Java
          Result := True;
    end;
     
    function NeedInstallBonjour(): Boolean;
    Var
      Version: string;
      InstallDir: string;
    Begin
      Result := False;
      // On recherche dans la base de registre les clefs FileVersion et InstallDir
     
      if (RegQueryStringValue(HKLM, 'SOFTWARE\Apple Inc.\bonjour', 'FileVersion', Version) and RegQueryStringValue(HKLM, 'SOFTWARE\Apple Inc.\bonjour', 'InstallDir', InstallDir)) then
        begin
          if compareStr(Version, '1.0.6.2') < 0 then
            Result := True;
        end
      else
        Result := True;
    end;
    Merci de m'aider à optimiser un peu tout ca

  14. #14
    Membre habitué Avatar de Rahim-US
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2009
    Messages : 151
    Points : 134
    Points
    134
    Par défaut
    Salut;
    moi je pense que tu peux l'amélioré en verifiant la disponibilité de java avant meme le clique sur suivant de wpWelcome avec la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function NextButtonClick(CurPageID: Integer): Boolean;
    Begin
    if CurPageID = wpWelcome then
    avec ça et tu continue

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/08/2009, 13h02
  2. Inno Setup - Option d'installation d'un programme supplémentaire
    Par Met@lnono dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 16/01/2008, 20h00
  3. [Inno Setup] ajouter *.reg au registre
    Par maxbat dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 23/06/2007, 15h57
  4. [Inno Setup] ajouter une page avec des checkbox
    Par cotede2 dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 28/05/2007, 23h01
  5. [Inno Setup] Clé d'installation
    Par dominik67 dans le forum Installation, Déploiement et Sécurité
    Réponses: 8
    Dernier message: 12/10/2006, 16h21

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