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] Option lors de la désinstallation du logiciel


Sujet :

Outils Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Par défaut [Inno Setup] Option lors de la désinstallation du logiciel
    Bonsoir tout le monde !

    Je voudrais savoir comment je peux faire pour que le "désinstallateur" efface ou non le fichier .ini qui contient les configs du logiciel par rapport au choix de l'utilisateur ?

    Par exemple j'utilise le logiciel... Je veux le supprimer j'aurais donc le fichier .ini dans le dossier d'installation qui se créer via le logiciel et contient ses configs, et je voudrais laisser le choix avec une case à cocher ou non pour supprimer ou non le fichier .ini s'il existe ?

    Mais je ne vois pas comment faire avec la doc, et sur Google il n'y a rien qui ressemble à mon problème....

    Merci !

  2. #2
    Membre émérite
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    991
    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 : 991
    Par défaut
    un exemple, multilingue fichier et dossiers non vide, via la section code et un evenement:
    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
    // -------------------------------------------------------------
    // -- on uninstall ask user if he want to remove his config
    // -- and skin directory and if no show path where is the file
    // -------------------------------------------------------------
    procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
    var
     langue, cheminconfig, effacerconfig, ouestconfig: String;
    begin
         langue := ActiveLanguage;
         if langue = 'French' then
         begin
         effacerconfig := 'Voulez-vous effacer vos réglages d''utilisation de DVD Rebuilder'#13'ainsi que le dossier contenant tout les skins?';
         ouestconfig := 'Votre configuration de DVD Rebuilder et le dossier skins sont la:';
         end
         else if langue = 'Portuguese' then
         begin
         effacerconfig := 'Deseja eliminar as suas definição do DVD Rebuilder'#13'assim como a pasta das ""Skins""?';
         ouestconfig := 'A sua configuração do DVD Rebuilder e a pasta das "Skins" estão aqui:';
         end
         else
         begin
         effacerconfig := 'Do you want to erase your settings of DVD Rebuilder'#13'and the dir containing all the skins?';
         ouestconfig := 'Your settings of DVD Rebuilder and dir skins are registered here:';
         end;
      if CurUninstallStep = usUninstall then
      begin
       RegQueryStringValue( HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\DVD Rebuilder_is1', 'InstallLocation', cheminconfig)
       if MsgBox('' + effacerconfig + '', mbConfirmation, MB_YESNO) = IDYES
       then begin
        DeleteFile('' + cheminconfig + '\rebuilder.ini');
        DelTree('' + cheminconfig + '\Skins',true,true,true);
        end else begin
        MsgBox('' + ouestconfig + ''#13''#13'' + cheminconfig + '', mbInformation, MB_OK)
        end;
      end;
    end;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Par défaut
    Super exactement ce que je cherchais merci beaucoup !

    J'ai un peu modifié le script, il compile toujours mais il ne fonctionne qu'à moitié... Il ne supprime pas le fichier de config ni affiche le chemin du répertoire... Vu que toi tu utilises le registre et moi je pensais plus utiliser '{app} après je sais pas si c'est possible...
    Et j'ai pas de "InstallLocation" dans le registre pour mon logiciel...

    Voilà le script un peu modifié :
    [code]
    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
     
    // -------------------------------------------------------------
    // -- lors de la désinstallation demander à l'utilisateur s'il veut retirer sa config
    // -- et affiche le chemin du répertoire où se situe le fichier de config
    // -------------------------------------------------------------
    procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
      var effacerconfig, ouestconfig: String;
     
      begin
        effacerconfig := 'Voulez-vous supprimer vos configurations d''utilisation du logiciel ?';
        ouestconfig := 'Votre configuration du logiciel est là :';
     
      if CurUninstallStep = usUninstall
        then begin
        if MsgBox('' + effacerconfig + '', mbConfirmation, MB_YESNO) = IDYES
          then begin
          DeleteFile('{app}\DE_Live.ini');
        end
        else begin
          MsgBox('' + ouestconfig + ''#13''#13'' + {app} + '', mbInformation, MB_OK)
        end;
      end;
    end;
    PS : J'ai aussi remarqué un petit bug...
    Si le logiciel tourne encore lors de la désinstallation, ça ne va pas désinstaller le .exe et les dll qu'il utilise...

    Donc comment faire pour quitter le programme avant la désinstallation ?

    Merci beaucoup de ton aide !

  4. #4
    Membre émérite
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    991
    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 : 991
    Par défaut
    tu dois avoir un truc comme sa?
    [SETUP]
    AppId={{3EFC26C7-82D9-431F-9FD8-8006D1846319}


    C'est ce que inno utilise pour la clef registre qu'il crée lui même.

    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
     // -------------------------------------------------------------
    // -- on uninstall ask user if he want to remove his config
    // -- and skin directory and if no show path where is the file
    // -------------------------------------------------------------
    procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
    var
      cheminconfig: String;
    begin
      if CurUninstallStep = usUninstall then
      begin
       RegQueryStringValue( HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{3EFC26C7-82D9-431F-9FD8-8006D1846319}_is1', 'InstallLocation', cheminconfig)
       if MsgBox('Voulez-vous supprimer vos configurations d''utilisation du logiciel ?', mbConfirmation, MB_YesNo) = IDYes
       then begin
        DeleteFile(cheminconfig + '\DE_Live.ini');
        end else begin
        MsgBox('Votre configuration du logiciel est là:' + ''#13''#10'' + cheminconfig, mbInformation, MB_OK)
        end;
      end;
    end;
    l'ideal est d'utiliser inno setup avec preprocesseur sa 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
    #define MyAppId "{3EFC26C7-82D9-431F-9FD8-8006D1846319}"
     
    [Setup]
    AppId={{#MyAppId}
     
    [code]
    // -------------------------------------------------------------
    // -- on uninstall ask user if he want to remove his config
    // -- and skin directory and if no show path where is the file
    // -------------------------------------------------------------
    procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
    var
      cheminconfig: String;
    begin
      if CurUninstallStep = usUninstall then
      begin
        RegQueryStringValue( HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppId}_is1', 'InstallLocation', cheminconfig);
        if MsgBox('Voulez-vous supprimer vos configurations d''utilisation du logiciel ?', mbConfirmation, MB_YesNo) = IDYes then
        begin
         DeleteFile(cheminconfig + '\DE_Live.ini');
        end
        else
        begin
          MsgBox('Votre configuration du logiciel est là :'#13''#13'' + cheminconfig, mbInformation, MB_OK)
        end;
      end;
    end;
    quand a detecter si le programme tourne il y a beaucoup d'exemple avec mutex ou nom processus, cherche "mutex inno setup" ou "psvince inno setup" tu devrais y arriver

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Par défaut
    Le define ne fonctionne pas j'ai une erreur de compilation,

    J'ai bien plusieurs clés dans le répertoire Uninstall mais pas la clé InstallLocation...

    Merci je vais voir pour la fermeture du programme

  6. #6
    Membre émérite
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    991
    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 : 991
    Par défaut
    ta quel version?

    LA 5.3.8
    http://www.jrsoftware.org/download.php/ispack.exe

    tu coche inno setup preprocesseur

    tu parle de dossier au lieu de registre, si tu crée un script avec l'assistant sans rien toucher, tu l'install, tu vas dans le registre à HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{4735EAF2-D2C0-44D9-B785-020DE9738D6A}_is1

    {4735EAF2-D2C0-44D9-B785-020DE9738D6A} remplace par le tiens, tu verra plain de valeur chaine dons InstallLocation

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 19/12/2014, 23h12
  2. Réponses: 3
    Dernier message: 11/09/2011, 16h02
  3. 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
  4. [Inno setup/VB6]Association d'une extension à un logiciel
    Par marsup54 dans le forum Installation, Déploiement et Sécurité
    Réponses: 3
    Dernier message: 27/09/2006, 09h09
  5. [Inno Setup/Is Tool]Désinstallation partielle
    Par méphistopheles dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 25/04/2006, 18h03

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