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] Comment télécharger et dézipper un fichier ?


Sujet :

Outils Delphi

  1. #1
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut [Inno Setup] Comment télécharger et dézipper un fichier ?
    Bonjour à toutes et à tous.

    Je viens de m'inscrire avec quelques difficultés sur un forum, suite à la réponse de Bill Morron sur le forum CNETFrance.
    Il m'a conseillé de poser ma question ici, car vous êtes des spécialistes d'Inno Setup.

    J'ai un problème de volumétrie car mon setup fait 149 Mo, ce que je considère comme un peu trop volumineux.
    Actuellement, ces fichiers dézippés sont introduit dans le setup de mon application.
    Pour le réduire, je voudrais pouvoir télécharger séparément les fichiers zip qui me servent dans mon installation.
    En procédant ainsi la volumétrie de mon setup passerait à 7 Mo, ce qui serait bien plus acceptable en terme de volumétrie.
    Mais je ne sais pas comment introduire cette fonctionnalité dans Inno Setup.

    J'ai trouvé ce lien qui date de 2011 et où il est dit qu'Inno Setup ne sait pas faire.

    Inversement, J'ai trouvé ce lien qui date de 2009, que je ne suis pas arrivé à reproduire.

    En gros, ce que je recherche à faire dans Inno Setup, ce sont :
    --> télécharger un fichier zip depuis un site dont je connais le lien.
    --> installer ce zip dans un répertoire temporaire chez le client.
    --> le dézipper.
    --> et recopier le répertoire au bon endroit.

    Est-ce possible de le faire ?
    Et si oui, avez-vous un exemple à me soumettre ?

    Merci pour vos réponses

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par Artemus24 Voir le message
    En gros, ce que je recherche à faire dans Inno Setup, ce sont :
    --> télécharger un fichier zip depuis un site dont je connais le lien.
    --> installer ce zip dans un répertoire temporaire chez le client.
    --> le dézipper.
    --> et recopier le répertoire au bonne endroit.

    Est-ce possible de le faire ?
    Oui...
    Citation Envoyé par Artemus24 Voir le message
    Et si oui, avez-vous un exemple à me soumettre ?
    Quelquefois, "il vaut mieux s'adresser au bon dieu qu'à ses saints", c.a.d. d'aller directement sur le site d'Innosetup, dans la section outil tiers :
    http://www.jrsoftware.org/is3rdparty.php

    Il y a 2 extensions offrant les fonctionnalités que vous souhaitez implémenter.
    Philippe.

  3. #3
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Bonjour Ph. B.

    Hier soir, j'ai suivi ton conseil et j'ai pris l'une de ces extensions : Inno Download Plugin de Mitrich Software !
    Les exemples sont très basiques, mais cela me convient parfaitement.

    Au départ, je croyais que 'IDP' dézippait aussi les fichiers téléchargés.
    J'ai procédé alors à une autre recherche sur le net et j'ai trouvé ce lien qui m'a permis d'installer un unzip gratuit.

    En ce qui concerne le téléchargement et l'installation de fichiers zip à partir des sites officiels, cela fonctionne parfaitement.

    Je rencontre un problème un peu particulier. Tant que je suis dans la partie qui récupère les fichiers ZIP, j'ai une fenêtre qui se nomme 'downloading additional files' avec une barre de progression. Cela me convient parfaitement.
    Mais lorsque j'utilise l'exécutable 'unzip.exe', qui se trouve dans la section '[Files]', la fenêtre du setup disparait.
    Y a-t-il un moyen de faire en sorte que cette fenêtre ne disparaisse et que j'ai bien une barre de progression qui m'indique où en est l'installation ?

    Je suppose que j'ai dû oublier de mettre un paramètre, mais je ne voie pas lesquel. Voici un exemple d'utilisation du fichier 'unzip.exe' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filename: "{tmp}\UNZIP.EXE"; Parameters: "{app}\file1.zip     -d {app}\"; Flags: hidewizard runhidden waituntilterminated
    Merci de ton aide, cela m'a été très utile.

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  4. #4
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par Artemus24 Voir le message
    Je rencontre un problème un peu particulier. Tant que je suis dans la partie qui récupère les fichiers ZIP, j'ai une fenêtre qui se nomme 'downloading additional files' avec une barre de progression. Cela me convient parfaitement.
    Mais lorsque j'utilise l'exécutable 'unzip.exe', qui se trouve dans la section '[Files]', la fenêtre du setup disparait.
    Y a-t-il un moyen de faire en sorte que cette fenêtre ne disparaisse et que j'ai bien une barre de progression qui m'indique où en est l'installation ?

    Je suppose que j'ai dû oublier de mettre un paramètre, mais je ne voie pas lesquel. Voici un exemple d'utilisation du fichier 'unzip.exe' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filename: "{tmp}\UNZIP.EXE"; Parameters: "{app}\file1.zip     -d {app}\"; Flags: hidewizard runhidden waituntilterminated
    AMHA, je vois plutôt 2 paramètres hidewizard (~masquer l'assistant) et runhidden (~exécuter caché) qui pourraient être la cause de ce désagrément...
    Philippe.

  5. #5
    Membre averti

    Homme Profil pro
    ingénieur, retraité
    Inscrit en
    Février 2007
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur, retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 230
    Points : 332
    Points
    332
    Par défaut
    bonjour,

    sur SourceForge on trouve un utilitaire 7_zip qui résoud tous les problèmes de décompression.

    PL

  6. #6
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut à Tous.

    @ Ph. B. : j'ai dû mal comprendre le rôle de ces 'flags'. J'ai supprimé 'hidewizard' et en effet, l'assistant ne disparait plus du tout.

    J'ai maintenant une fenêtre où s'affiche "finalisation de l'installation..." et la barre de progression reste bloqué à son maximum.
    Durant cette phase, je procède entre autre, au dézippage des fichiers qui ont été téléchargés précédemment
    Mais j'ai aussi d'autres traitements comme par exemple, lancement des services, changement du paramétrage dans des fichiers de type "text", ...

    N'y a-t-il pas moyen de mettre une barre de progression ou quelque chose d'animée afin de faire comprendre à l'utilisateur que le traitement se poursuit ? On a l'impression que le setup reste bloqué.

    Autre problème, dans la page "downloading additionnal files", il y a un bouton "detail". J'aimerai ouvrir automatiquement cette page afin d'avoir les deux barres de progressions ("total progress" et "current file") à l'affichage. Comment faire ?

    @ paulfr : dans ce lien, j'ai trouvé un autre lien, que voici, qui m'a permis de récupérer l'exécutable "unzip.exe".
    Je l'ai installé sur mon ordinateur et je possède la version du 24 janvier 2015 de 03:47, et sa taille fait 164 K. J'ai fait mes tests avec ce "unzip.exe" et cela fonctionne parfaitement.

    Qu'est-ce que "7_zip" pourra m'apporter de plus ? J'ai téléchargé la version 7-Zip 9.38 beta du 03 janvier 2015 et sa taille fait 1,12 Mo.
    Pourquoi devrais-je prendre un utilitaire plus volumineux pour faire le même travail ?

    A moins qu'il y a quelque chose que ne fait pas ce "unzip.exe" vis-à-vis d'Inno Setup.

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #7
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    N'y a-t-il pas moyen de mettre une barre de progression ou quelque chose d'animée afin de faire comprendre à l'utilisateur que le traitement se poursuit ? On a l'impression que le setup reste bloqué.
    Il faut passer par des scripts (syntaxe Delphi)...

    Citation Envoyé par Artemus24 Voir le message
    Autre problème, dans la page "downloading additionnal files", il y a un bouton "detail". J'aimerai ouvrir automatiquement cette page afin d'avoir les deux barres de progressions ("total progress" et "current file") à l'affichage. Comment faire ?
    J'essaierais ceci : idpSetOption('DetailsButton', 'yes');
    Sinon il faut voir si c'est indiqué dans la documentation (si il y en a une) du plugin...

    Citation Envoyé par Artemus24 Voir le message
    Qu'est-ce que "7_zip" pourra m'apporter de plus ? J'ai téléchargé la version 7-Zip 9.38 beta du 03 janvier 2015 et sa taille fait 1,12 Mo.
    Pourquoi devrais-je prendre un utilitaire plus volumineux pour faire le même travail ?
    Il gère des formats supplémentaires (.7z, .rar, etc), et propose une dll que vous pouvez interfacer avec Innosetup et dont les fonctions doivent être dotés d'appels en retour (callback) pour gérer une progression justement...
    Philippe.

  8. #8
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut Ph. B.

    J'ai créé une page personnelle avec une barre de progression à partir de ce lien.
    A l'intérieur de la boucle i, J'ai fait un 'case i of' où chaque valeur de i correspond à un programme qui s'exécute ('shellexec').
    Mais si le programme s'exécute, la barre de progression n'avance pas. Ce n'est pas du tout ce que je voulais.

    N'y a-t-il pas un moyen d'ajouter dans la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filename: "{tmp}\UNZIP.EXE"; Parameters: "{app}\file1.zip -d {app}\"; Flags: runhidden waituntilterminated
    quelque chose pour indiquer que l'on désire une barre de progression ? Si ce n'est pas possible, je repars sur la page personnelle.

    Je ne connaissais pas 'ipdSetOption'. Donc j'ai fait une recherche sur le net. Pour le bouton "détails", il y a une erreur d'interprétation :
    idpSetOption('DetailsButton','yes'); permet d'afficher le bouton "Détails".
    idpSetOption('DetailedMode', 'yes'); permet de simuler le clique sur le bouton. C'est ce que je voulais. Ça affiche la page contenant les deux barres de progression, comme ci-après :



    Et en ce qui concerne l'7_zip, je n'utilise que des fichiers zip pour windows.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/02/2016, 10h48
  2. Réponses: 1
    Dernier message: 22/08/2008, 18h39
  3. Réponses: 6
    Dernier message: 30/10/2007, 15h04
  4. Réponses: 2
    Dernier message: 28/10/2007, 16h12
  5. Réponses: 2
    Dernier message: 11/10/2007, 00h49

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