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] Stopper installation en cours


Sujet :

Outils Delphi

  1. #1
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut [INNO SETUP] Stopper installation en cours
    Bonjour,

    Je m'arrache les cheveux depuis hier à trouver une solution pour stopper une installation.

    J'ai essayé d'utiliser les paramètres : Check, AfterInstall et BeforeInstall mais aucun ne conviens ou alors je n'arrive pas à les utiliser correctement...

    Dans l'aide, ils sont utilisés dans la section [Files] mais je souhaite pouvoir les utilisé dans la section [Run] car je souhaite stopper l’exécution de l'installation si un des programmes listé dans [Run] renvoi une erreur.

    J'ai un exe qui est donc lancé dans [Run] et celui-ci écrit dans un fichier txt une valeur de retour (n'ayant pas trouvé de fonction innosetup récupérant directement des valeurs de retour d'un exe...), j'arrive très bien à lire le contenu de ce fichier txt avec une petite fonction que j'ai mise dans [Code] mais que ce soit avec Check, AfterInstall ou BeforeInstall, même lors d'erreurs, l'installation continue...

    Je vous met le code complet dès que je peux sinon avez-vous une solution à me proposer ?

    Merci

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 796
    Points : 13 475
    Points
    13 475
    Par défaut
    A l'exécution de la section [RUN], l'installation s'est déjà terminée avec succès, c'est trop tard
    Il faudrait exécuter ce programme depuis CurStepChanged(ssInstall) et le cas échéant lancer un Abort.

  3. #3
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Meme avec AfterInstall ? Ou alors sur l'élément suivant dans [Run] ?

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 796
    Points : 13 475
    Points
    13 475
    Par défaut
    Oui

  5. #5
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Arf... Et comment doit-on utiliser cette procédure stp ?

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 796
    Points : 13 475
    Points
    13 475
    Par défaut
    Quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure CurStepChanged(CurStep: TSetupStep);
    var
      Err :integer;
     
    begin
      if CurStep = ssInstall then
      begin
        ShellExec('open', ExpandConstant('{app}') +'\MonApp.exe', '', '', SW_HIDE, ewWaitUntilTerminated, Err);
        if not TaCondition then Abort;
      end;
    end;

  7. #7
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    D'accord

    Et dans [Run], je n'ai rien à mettre ?

    Merci

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 796
    Points : 13 475
    Points
    13 475
    Par défaut
    Non

  9. #9
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Ok, je vais adapter ton code merci

    Mais petite question de précision, la procédure se lance automatiquement une seule fois ? Lors de la phase d'installation c'est ça ?

    Merci!

  10. #10
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Je viens d'adapter le code que voici :

    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
     
    procedure CurStepChanged(CurStep: TSetupStep);
    var
      Err :integer;
      ContenuTxt :String;
     
    begin
      if CurStep = ssInstall then
      begin
        ShellExec('open', ExpandConstant('{tmp}') + '\Partage.exe', '', '', SW_HIDE, ewWaitUntilTerminated, Err);
     
        LoadStringFromFile(ExpandConstant('{tmp}') + '\retour.txt', ContenuTxt);
     
        if ContenuTxt <> 'OK' then begin
        MsgBox(ContenuTxt, mbCriticalError, MB_OK);
        Abort;
        end
      end;
    end;
    Par contre, cela n'as pas l'air de lancé Partage.exe car je n'ai aucun fichier retour.txt de créé de plus dans le répertoire {tmp} j'avais les fichiers temporaires de l'installation dedans maintenant je n'ai plus rien, la procédure à l'air de se lancé avant la copie des fichiers...

    Je dois bien ne plus utiliser la section [Run] pour lancé l'exe ?

    Merci.

    EDIT : J'ai utilisé finalement ssPostInstall pour que la copie de fichiers se fasse

  11. #11
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    J'arrive bien à lancer maintenant mon .exe mais comment faire pour "simuler" un clic sur Annuler au lieu de faire un Abort ? Histoire de supprimer les fichiers qui ont été installé si il y a eu des erreurs.

    Merci.

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/09/2014, 18h10
  2. Inno setup : lancer installation sans droit administrateur
    Par DanielB dans le forum Installation, Déploiement et Sécurité
    Réponses: 3
    Dernier message: 24/10/2013, 13h15
  3. [inno setup] silent install + suppression
    Par toony72 dans le forum Outils
    Réponses: 1
    Dernier message: 01/11/2012, 18h44
  4. Inno Setup: Stopper l'installation
    Par DelTibus dans le forum Outils
    Réponses: 1
    Dernier message: 11/10/2008, 09h16
  5. [INNO SETUP][ORACLE] Installer le client Oracle avec Inno
    Par AnnSo dans le forum Bases de données
    Réponses: 11
    Dernier message: 19/08/2004, 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