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 tester l'existence d'un fichier avant de le télécharger ?


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 485
    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 485
    Points : 19 518
    Points
    19 518
    Par défaut [Inno Setup] Comment tester l'existence d'un fichier avant de le télécharger ?
    Bonjour à toutes et à tous.

    J'ai développé une installation Inno Setup, et je rencontre un problème lors du téléchargement d'un composant que je dois récupérer sur un site officiel.
    Quand je télécharge la dernière version, ce composant est stocké dans un répertoire bien précis.
    Mais quand le même composant n'est plus la dernière version, il passe automatiquement dans un répertoire d'archive.

    Du coup, j'ai deux problèmes :

    1) comment récupérer la dernière version, sachant que je ne connais pas à l'avance son numéro de version et qu'il peut y avoir aussi des trous dans la numérotation ?

    2) connaissant le numéro de la version à télécharger, comment savoir où se trouve cette version ?
    Pour simplifier, voici les deux chemins à tester :
    --> monsite.fr / download/ appli2.4.6-win32.zip
    --> monsite.fr / download / archives / appli2.4.6-win32.zip

    Pour réaliser le téléchargement, j'ai utilisé le logiciel : Inno Downloads Plugin.

    Pour télécharger le fichier, j'utilise la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    idpAddFile('www.monsite.fr/download/appli2.4.6-win32.zip',   ExpandConstant('{tmp}\appli.zip'));
    J'ai cherche sur le net, mais je n'ai pas trouvé le moyen de tester l'existence d'un fichier distant.

    Il y a peut-être une autre solution, mais je n'ai pas réussi à la mettre en œuvre.
    Télécharger le premier fichier et si je n'ai pas d'erreur alors c'est le bon fichier.
    Sinon, je télécharge le second fichier.

    Le problème, c'est que l'erreur est bloquante et l'installation se termine.
    C'est le manque de connaissance d'Inno Setup qui m'a amené à poser cette question dans ce forum.

    Merci pour vos réponses.
    Cordialement.
    Artémus24.
    @+

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    Salut !

    Dans mon setup, je vérifie l’existence de la redistribuable 'vcredist_x86'.

    Voici ma fonction :

    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
    //FONCTION DE VERIFICATION REDIS 
    function VerifierRedis(): Boolean; 
    var 
      ErrorCode: Integer;
      RedistInstalled : Boolean;
      Result1 : Boolean; 
    begin 
      //Vérifie si la Redistributable est installée dans la machine.
      RedistInstalled := RegKeyExists(HKLM,'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{f0c3e5d1-1ade-321e-8167-68ef0de699a5}');
      if RedistInstalled then
      begin
        Result := true;
        MsgBox('blblbl', mbInformation, MB_OK);
      end 
      else
        begin
          // Si elle n'existe pas, on demande si l'utilisateur souhaite la télecharger.
          begin
            Result1 := MsgBox('L''installation requiert Microsoft Visual C++ 2010 Redistributable Package (x86). Voulez-vous télécharger Microsoft Visual C++ 2010 Redistributable Package (x86) maintenant ?',
              mbConfirmation, MB_YESNO) = idYes;
            if Result1 =false then
            begin
              // S'il dit non.
              MsgBox('Vous devez avoir Microsoft Visual C++ 2010 Redistributable Package (x86) installé sur votre machine. '#13#10'L''installation va continuer. '#13#10''#13#10'N''oubliez pas d''installer Microsoft Visual C++ 2010 Redistributable Package (x86).', mbInformation, MB_OK);
              Result:=true;
            end 
            else
              begin
                //S'il dit oui, on va DL la redis
                Result:=true;
                ShellExec('open',
                  'https://download.microsoft.com/download/C/6/D/C6D0FD4E-9E53-4897-9B91-836EBA2AACD3/vcredist_x86.exe',
                  '','',SW_SHOWNORMAL,ewNoWait,ErrorCode);     
              end; 
          end;
        end;
      end;

    Je pense que cela devrait t'aider

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 10/03/2008, 09h59
  2. Comment tester l'existance d'un fichier sans instancier un objet File?
    Par Hamdi Hedhili dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 28/08/2007, 11h13
  3. Socket : comment tester l'existence d'un serveur?
    Par bios dans le forum Réseau
    Réponses: 4
    Dernier message: 26/12/2005, 16h51
  4. [IdTCP] Comment tester l'existence de messages en attente ?
    Par HopeLeaves dans le forum Web & réseau
    Réponses: 1
    Dernier message: 29/06/2005, 10h03

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