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] Installation Pré requis + reboot


Sujet :

Outils Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 39
    Points : 37
    Points
    37
    Par défaut [Inno Setup] Installation Pré requis + reboot
    Bonjour,

    Dans mon programme d'installation développé avec Inno Setup je dois d'abord installer des prérequis (Redistributable C++ 2015 et Net Framework 4.6)
    Sur certains postes le Redistributable C++ 2015 nécessite un redémarrage du poste avant de faire la suite du Setup

    J'ai un code pour tester si le Redistributable C++2015 doit être installé


    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
    function VCinstalled: Boolean;
     var
      major: Cardinal;
      minor: Cardinal;
      bld: Cardinal;
      rbld: Cardinal;
      key: String;
     begin
      Result := False;
      key := 'SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64';
      if RegQueryDWordValue(HKEY_LOCAL_MACHINE, key, 'Major', major) then begin
        if RegQueryDWordValue(HKEY_LOCAL_MACHINE, key, 'Minor', minor) then begin
          if RegQueryDWordValue(HKEY_LOCAL_MACHINE, key, 'Bld', bld) then begin
            if RegQueryDWordValue(HKEY_LOCAL_MACHINE, key, 'RBld', rbld) then begin
                Log('VC 2015 Redist Major is: ' + IntToStr(major) + ' Minor is: ' + IntToStr(minor) + ' Bld is: ' + IntToStr(bld) + ' Rbld is: ' + IntToStr(rbld));
                // Version info was found. Return true if later or equal to our 14.0.23026.00 redistributable
                // Note brackets required because of weird operator precendence
                Result := (major >= 14) and (minor >= 0) and (bld >= 23026) and (rbld >= 0)
            end;
          end;
        end;
      end;
     end;
    Par contre je ne sais pas gérer le reboot et surtout comment gérer qu'après le reboot le setup se relance pour la suite de l'installation

    Quelqu'un peu m'aider svp?

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Ajoute ton setup à la clé RunOnce et lance un Shutdown /r /t 0.

    Le chemin/fichier de l'installateur correspond à {srcexe}.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 39
    Points : 37
    Points
    37
    Par défaut
    Si j'ai bien compris voici ce que je dois écrire dans le registre

    [Registry]
    Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce; ValueType: string; ValueName: LastInstallationPath; Flags: uninsdeletekey; ValueData: {srcexe}

    Par contre j'aurais voulu si le redistribuable n'est pas installé (voir code plus haut) il soit installé et qu'à la fin il demande à l'utilisateur si il veut redémarrer maintenant ou pas
    Si il répond oui stop setup redémarrage et relance le setup avec RunOnce
    si non stop setup

    Un exemple ?

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Ce n'est pas logique de poser la question après l'installation des bibliothèques. Il faudrait plutôt interrompre l'installation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [Code]
    function InitializeSetup(): Boolean;
    begin
      Result := VCinstalled or (MsgBox('Redistributable C++ 2015 absent. Voulez-vous l''installer ?', mbConfirmation, MB_YESNO) = IDYES);
    end;
    Mais tu devrais aussi conditionner l'ensemble des actions si tu veux les exécuter dans un premier ou deuxième temps par check VCinstalled ou check not VCinstalled :

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    [Files]
    Source: "..\MonApp.exe"; DestDir: "{app}"; Check VCinstalled
     
    [Registry]
    Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce; ValueType: string; ValueName: LastInstallationPath; Flags: uninsdeletekey; ValueData: {srcexe}; Check not VCinstalled

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 39
    Points : 37
    Points
    37
    Par défaut
    ok mais ça ne focntionne pas quand je compile il y a une erreur sur VCinstalled
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function InitializeSetup(): Boolean;
    begin
      Result := VCinstalled or (MsgBox('Redistributable C++ 2015 absent. Voulez-vous l''installer ?', mbConfirmation, MB_YESNO) = IDYES);
    end;

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/03/2008, 10h32
  2. Réponses: 0
    Dernier message: 04/02/2008, 13h57
  3. [Inno Setup] Installer mysql avec Inno Setup
    Par colfire_dev dans le forum Outils
    Réponses: 0
    Dernier message: 10/01/2008, 13h22
  4. Réponses: 2
    Dernier message: 25/10/2007, 10h23
  5. [Inno Setup]Installation Multi plateforme
    Par Guinness82 dans le forum Installation, Déploiement et Sécurité
    Réponses: 2
    Dernier message: 29/09/2006, 13h40

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