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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    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 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 : 42
    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 418
    Points
    1 418
    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;
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

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

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    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 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 : 42
    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 418
    Points
    1 418
    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
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

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

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    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 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 : 42
    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 418
    Points
    1 418
    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
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

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

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    Par défaut
    Oui j'ai bien la dernière version.

    J'ai plein de valeur chaine mais pas InstallLocation...

  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 : 42
    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 418
    Points
    1 418
    Par défaut
    un exemple complet compilé et testé, si sa t'aide:

    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
    ; Script generated by the Inno Setup Script Wizard.
    ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
     
    #define MyAppId "{4735EAF2-D2C0-44D9-B785-020DE9738D6A}"
    #define MyAppName "My Program"
    #define MyAppVerName "My Program 1.5"
    #define MyAppPublisher "My Company, Inc."
    #define MyAppURL "http://www.example.com/"
    #define MyAppExeName "MyProg.exe"
     
    [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={{#MyAppId}
    AppName={#MyAppName}
    AppVerName={#MyAppVerName}
    AppPublisher={#MyAppPublisher}
    AppPublisherURL={#MyAppURL}
    AppSupportURL={#MyAppURL}
    AppUpdatesURL={#MyAppURL}
    DefaultDirName={pf}\{#MyAppName}
    DefaultGroupName={#MyAppName}
    OutputBaseFilename=setup
    Compression=lzma
    SolidCompression=yes
     
    [Languages]
    Name: "english"; MessagesFile: "compiler:Default.isl"
     
    [Tasks]
    Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
     
    [Files]
    Source: "C:\Program Files\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
    ; NOTE: Don''t use "Flags: ignoreversion" on any shared system files
     
    [Icons]
    Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
    Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
     
    [Run]
    Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent
     
    [INI]
    Filename: "{app}\MyProg.ini"; Section: "InstallSettings"
    Filename: "{app}\MyProg.ini"; Section: "InstallSettings"; Key: "test"; String: "hello"
     
    [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 + '\MyProg.ini');
        end
        else
        begin
          MsgBox('Votre configuration du logiciel est là :'#13''#13'' + cheminconfig, mbInformation, MB_OK)
        end;
      end;
    end;
    tiens ta sa aussi pour détecter si ton programme tourne et avertir l'utilisateur, j'ai pas testé:
    http://raz-soft.com/display-english-...or-inno-setup/
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

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

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    Par défaut
    Ok super

    Enfaite pour faire fonctionner les define il faut installer QuickStart Pack...
    C'est pour ça que ça ne marcher pas...

    Merci pour le lien je vais essayer de regarder ça même si c'est en anglais ^^

    Merci beaucoup

  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 : 42
    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 418
    Points
    1 418
    Par défaut
    Si tu lis le script iss tu devrais y arriver.

    en pièce jointe une version avec traduction fr.

    pour ispack je t'avais filé le lien plus haut
    Fichiers attachés Fichiers attachés
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

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

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    Par défaut
    Exacte, je savais pas qu'il y avait des extensions... Donc quand j'ai regardé l'url 5.3.8 je pensais déjà l'avoir...

    Maintenant ça marche nikel j'utilise les defines vu que je savais pas qu'on pouvait l'utiliser et c'est super rapide du coup pour travailler dessus !

    Merci

    Pour le process en cours je vais regarder le lien que tu m'as filé merci

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

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Points : 52
    Points
    52
    Par défaut
    Parfait j'ai réussi à faire tout ce que je voulais grâce à toi !

    Merci beaucoup !!!

+ 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