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] Installation programme avant installation


Sujet :

Outils Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut [Inno Setup] Installation programme avant installation
    Bonjour à tous,

    C'est ma première utilisation de INNO SETUP.

    Je créé un fichier de script tout simple (en utilisant le wizard) qui copie le contenu d'un rep (C:\TEST) dans un rep d'install C:\MON_APPLI et qui fait pointer le raccourci sur l'exécutable de mon appli.

    Le seul souci est que le répertoire dont j'extrais le contenu (C:\TEST) contient un exe que je souhaitre exécuter pdt mon installation.

    Pour simplifier, mon répertoire C:\TEST contient postgresql.exe et mon_appli.exe. Lors de l'install, je souhaite que TOUT le contenu de C:\TEST soit copié dans C:\MON_APPLI et que postgresql.exe soit exécuté pour installer ma base de données vers laquelle pointe mon appli.

    Comment faire ?
    "Patience et longueur de temps font plus que force ni que rage ..."

  2. #2
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    Je te conseille vivement d'installer ISTool, le fidèle compagnon d'Inno Setup.

    Par exemple en section "Installation (exécuter)", tu pourras créer ta ligne de code idoine.

    Lorsque ton nouvel objet sera créé, te suffira de cliquer droite dessus => Propriété et là tu verras des tas de cases à cocher.

    Celle qui est pour toi, se nomme "Ne pas attendre la fin pour exécuter". Ce qui correspond à la section [Run].

    @+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut
    InnoSetup gratuit et ISTools payant ??
    "Patience et longueur de temps font plus que force ni que rage ..."

  4. #4
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Citation Envoyé par the java lover Voir le message
    InnoSetup gratuit et ISTools payant ??
    http://delphi.developpez.com/freewar.../#Installation

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut
    Merci pour les infos.

    Ca fonctionne comme souhaité, seul petit hic, l'exécution de l'autre appli s'effectue en parrallèle de l'installation, mais l'installation ne s'arrête pas.

    Existe-t-il une option permettant de mettre "en pause" l'install principale, le temps de l'exécution du second programme ?

    Merci
    "Patience et longueur de temps font plus que force ni que rage ..."

  6. #6
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Comment fais-tu appel à cet exe ? Dans la section [Run] ?
    Si c'est le cas il suffit d'ajouter waituntilterminated dans les flags de l'entrée.

    @+ Claudius

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut
    Ca fonctionne pas mal au début mais petit problème.

    Je récapitule:
    - J'exécute une installation d'appli :nommons la install 1
    - Dans cette procédure d'install, je lance l'installation de postgreSQL : nommons cette installation install 2
    - A la fin de l'installation install 2, je souhaite rendre la main à install 1 pour la terminer.

    Après ajout de waituntilterminated

    L'install 2 se lance bien avant la fin de la procédure d'install 1 et me bloque la fenêtre install 1 qui attend bien la fin de l'autre installation.
    En revanche dès que je clique dans la 1ere fenêtre d'install 2 ça me rend la main sur install 1 qui se termine alors qu'install 2 continue en parralllèle.

    Est-ce clair ?
    Merci pour votre aide
    "Patience et longueur de temps font plus que force ni que rage ..."

  8. #8
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Re,

    J'ai fais un install un peu identique il y quelques temps. Installation de l'application + Firebird Client.

    J'avais définis l'installation de FB ainsi sans que cela ne pose de problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [Run]
    Filename: {src}\Firebird-2.0.3.12981-1-Win32.exe; WorkingDir: {src}; Flags: skipifdoesntexist skipifsilent hidewizard; Tasks: Firebird; Parameters: {code:GetFBInstallParam}; StatusMsg: Installation de Firebird Client 2.0.3 ...
    @+ Claudius

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut
    A priori ça ne suffit pas...

    Dès que je clique sur un bouton ou que je fais une intercation pour install2 il me rend la main sur install2 et me dit que l'installation initiale est terminée, alors que install2 continue de s'exécuter en parrallèle...
    "Patience et longueur de temps font plus que force ni que rage ..."

  10. #10
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut

    Même en ajoutant waituntilterminated ?

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut
    Oui, même en ajoutant waituntilterminated.

    En fait des que je clique sur suivant dans mon install2 alors install1 se termine, ce qui ne me convient pas car je souhaite qu'il soit en pause jusqu'à la fin de install2
    "Patience et longueur de temps font plus que force ni que rage ..."

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut
    pas d'idées ?
    "Patience et longueur de temps font plus que force ni que rage ..."

  13. #13
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Citation Envoyé par the java lover Voir le message
    pas d'idées ?
    Salut,

    Et dans ton ISTools, lorsque tu "édites" l'objet en question, as-tu testé tous les flags qui seraient intéressants en ton cas ?

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut
    Je les ai tous testés et il ne semble pas que l'un d'entre eux permette de faire ce que je souhaite.

    Mais on ne sait jamais, peut être existe-t-il un truc que je n'ai pas vu... ?
    "Patience et longueur de temps font plus que force ni que rage ..."

  15. #15
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Je ne sais pas trop, mais peut-être faut-il alors que tu ajoutes du code en section [code] de IS afin d'arriver à tes fins.

    Ou bien que tu exposes ici clairement et simplement ton algo en pas à pas.

  16. #16
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Cela veut certainement dire que ton install2 lance lui-aussi un autre executable (disons install2-2) pour terminer sa configuration et qu'install2 se termine avant que install2-2 soit terminé.

    Soit tu as paramètre en ligne de commande pour dire à install2 d'attendre la fin de l'execution d'install2-2 ou malheureusement ton problème sera irésolvable

    Tu devrais pouvoir voir à travers le gestionnaire des tâches si un autre exe est exécuté.

  17. #17
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonsoir,

    [...] Existe-t-il une option permettant de mettre "en pause" l'install principale, le temps de l'exécution du second programme ? [...]
    Peut-être un début d'idée en rusant : ce serait de lancer déjà ce qui doit être installé en premier. Lorsque la fin serait terminée, là alors interviendrait l'autre partie de cette installation.

    De cette façon, tout s'exécuterait séquentiellement en non en parallèle.

    Par exemple :
    1. Lancement d'un exe lançant seulement l'intro de ton install
    2. Au bout de cette séquence, intervient le lancement d'install prioritaire
    3. A la fin de cette install prioritaire, un signal est envoyé à la partie complémentaire du tout début de ton install.
      Sachant qu'à ce moment précis ; l'installation prioritaire est fonctionnelle.


    Bref, une ruse en trois morceaux à cogiter...

    @+

  18. #18
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Oui mais l'Install2-2 sera lui toujours exécuté en parallèle et prendra manifestement toujours plus de temps que le tien à être exécuté! Ton install Intro sera toujours notifié trop tôt!

    La seul possibilité est de déterminer quel exe est lancé depuis le install2, de coder sa propre DLL avec une fonction EnumProcess, de récupérer le Handle du processus et de faire un WaitForSingleObject dessus. Tout ceci implémenté dans CurStepChanged.

Discussions similaires

  1. [Inno Setup] Detection de JRE installé
    Par JuFromParis dans le forum Outils
    Réponses: 3
    Dernier message: 12/10/2011, 11h50
  2. [Inno Setup] Musique pendant l'installation
    Par Rahim-US dans le forum Outils
    Réponses: 25
    Dernier message: 27/01/2011, 17h34
  3. Réponses: 2
    Dernier message: 24/11/2010, 11h43
  4. programme d'installation avec inno setup
    Par abdallahi dans le forum Installation, Déploiement et Sécurité
    Réponses: 3
    Dernier message: 24/11/2007, 17h46
  5. [Inno Setup] Variable d'environnement install path
    Par 0xYg3n3 dans le forum Outils
    Réponses: 5
    Dernier message: 19/10/2007, 10h38

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