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] Supression après installation


Sujet :

Outils Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 12
    Par défaut [Inno Setup] Supression après installation
    Bonjour,

    Dans le cadre d'un projet dans mon entreprise, j'utilise Inno Setup pour l'installation des softs, qui sont déployés via le NAL.

    La procédure fonctionne bien à l'heure actuelle, mais il me manque une dernière chose que je n'arrive pas mettre en oeuvre.

    Je souhaite après installation du logiciel sur le poste du collaborateur, que les fichiers et répertoires soient supprimés du poste. Après plusieurs recherches, je suis tombé sur un bout de code (celui situé dans la section [Code]) qui semble satisfaire mes besoins :

    [Setup]
    ...

    [Languages]
    ...

    [Files]
    ...

    [Run]
    Filename: "{app}\setup.exe"; Parameters: "TRANSFORMS={app}\Visio2003Std.MST /qb-"; Flags: shellexec waituntilterminated
    *lancement function*

    [Code]
    function deleteDir(): Boolean;
    var
    ResultCode: Integer;
    begin
    //allow to delete completely installation folder
    Exec('cmd', ExpandConstant('/c RMDIR /S /Q "{app}"'), '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
    Result := True;
    end;

    Aussi j'ai 2 questions :
    - Est ce que déjà le code que j'ai récupéré vous paraît correct ?
    - Comment faire pour lancer la function deleteDir() (quesque je mets à la place de *lancement function*) ?

    Merci d'avance pour votre aide !

  2. #2
    Membre très actif Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    580
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Mars 2002
    Messages : 580
    Par défaut
    jamais éssayé

    mais regarde les flags des tes fichiers (utilise istool de préférence)
    il y'a l'option (supprimer aprés installation) justement

    a tester ...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 12
    Par défaut
    Merci Issam pour ta suggestion.

    Je ne connaissais pas ISTool, ca s'avère être un outil fort intéréssant.
    Je regarde ça cet après midi, et je vous tiens au courant.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 12
    Par défaut
    Bonjour à tous,

    Je suis arrivé à faire ce que je souhaitais. Après pas mal de tests, je me suis rendu compte que l'Inno Setup ne pouvais pas faire la suppression à 100%, je suis donc passé par l'option script du NAL (Novell Application Launcher pour les non connaisseurs). Bref, trève de blabla, voici toutes mes explications :

    Rappel : Mon objectif était de supprimer tous les fichiers/répertoires sources lié à l'installation du soft après application de celle-ci.

    1. L'option "Installation (supprimer)" de ISTool semblait satisfaire mes besoins. En réalité, pas du tout. Cette option rajoute dans l'Inno Setup la catégorie [InstallDelete]. Lorsque l'on regarde de plus près dans l'aide, on remarque que [InstallDelete] est exécuté en premier lieu: This optional section is identical in format to the [UninstallDelete] section, except its entries are processed as the first step of installation (ou bien voir la page "Installation Order" de l'aide pour mieux se rendre compte).
    Bref, comme je souhaitais lancer mon code après l'installation (ou bien le [Run]), celui ci ne pouvais me satisfaire.

    2. Je suis donc passé finalement par une "fausse" ligne de commande de la section [Run].
    [Run]
    Filename: {app}\setup.exe; Parameters: TRANSFORMS={app}\Visio2003Std.MST /qb-; Flags: shellexec waituntilterminated
    Filename: MSVisio2003StdFR; Check: deleteDir; Flags: skipifdoesntexist;

    [Code]
    function deleteDir(): Boolean;
    var
    ResultCode: Integer;
    begin
    //allow to delete completely installation folder
    Exec('cmd', ExpandConstant('/c RMDIR /S /Q "{app}"'), '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
    Result := True;
    end;
    Le code deletedDir() que j'avais recupéré sur un autre thread de ce forum fonctionne à merveille. Avec l'aide de ISTool, j'ai pu trouver comment lancer la fonction sans qu'on est le droit à un message d'erreur.
    Désormais, la procédure de suppression après installation est respectée... oui mais, pas totalement ! Tous les fichiers/répertoires sont bien effacés de l'ordinateur, mais le fichier compilé par Inno Setup reste lui. Normal après reflexion, car on ne peut pas supprimer le fichier qui exécute lui même la commande de supression.

    3. Finalement, j'ai simplement ajouter une commande RMDIR dans l'option des scripts exécutés après déploiement (et installation) du logiciel dans le NAL, et la tout fonctionne à merveille.

    Autre solution pour les personnes qui serai interéssés par la suppression après installation (et sans le NAL) : rajouter dans le script d'Inno Setup l'ajout d'une nouvelle valeur chaîne dans la base de registre de Windows (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce), dans la clef RunOne, et y mettre la commande de suppression correspondante à votre besoin, exemple : CMD /c RMDIR /S /Q "C:\Softwares\nom_du_logiciel"
    La suppression sera effective lors du prochain redémarrage de Windows.


    Voila, je pense avoir tout dit. J'espère avoir été assez explicite pour les personnes qui seront interéssés, car je n'ai pas beaucoup trouvé d'infos sur une section inexistante que l'on pourrai finalement appeler [AfterInstallDelete].

    Si jamais certaines personnes ont des questions, n'hésitez pas !

    Merci à Issam en tout cas pour son aide, même si ISTool n'a pas été mon choix final, ca m'a permis de bien progresser

    Owyn.

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

Discussions similaires

  1. inno setup - wamp deja installe
    Par fk04 dans le forum Outils
    Réponses: 10
    Dernier message: 23/02/2010, 17h13
  2. [Inno Setup] ajouter l'installation de java
    Par jeanGuignol dans le forum Outils
    Réponses: 13
    Dernier message: 26/10/2009, 23h36
  3. Inno Setup: Stopper l'installation
    Par DelTibus dans le forum Outils
    Réponses: 1
    Dernier message: 11/10/2008, 09h16
  4. 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
  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