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 :

interrompre une installation


Sujet :

Outils Delphi

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 254
    Par défaut interrompre une installation
    Bonjour,
    Je souhaite lors de l'installation contrôler l'existence d'une clé dans le registre et si cette clé existe stopper l'installation.
    Avec l'aide des forums, je pense avoir trouver le code pour effectuer ce contrôle mas je ne sais pas comment stopper l'installation si la clé existe et créer la clé si elle n'existe pas.
    Pouvez-vous m'aider ? Par avance je vous remercie.

    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
     
     
    function InitializeSetup(): Boolean;
    	begin
    		if RegKeyExists(HKEY_LOCAL_MACHINE,'SOFTWARE\WOW6432Node\MaClé') = true then
            begin
            Msgbox('Clé présente',mbConfirmation,MB_OK);
            Result:=true;
            //Mettre fin à l'installation
            end    
    			else
            begin
    				Msgbox('RAS',mbConfirmation,MB_OK);
    				Result:=True;
           //Créer la clé
            end;	
    	end;

  2. #2
    Membre expérimenté Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Par défaut
    Bonjour Daniel,

    Il faudrait nous en dire plus.
    De quelle installation parles-tu ?
    Tu essaies d'écrire un script pascal dans Inno Setup ?

  3. #3
    Membre expérimenté Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Par défaut
    Avec Inno setup il faut appeller "Abort"

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 231
    Par défaut
    Tout simplement ne pas lancer le Application.Run ou sinon ne pas créer de MainForm
    Aide via F1 - Utilisez l'I.A. - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité ! Sachez-le : l'IA remplace la très grande majorité des développeurs, pas seulement les ignares ...

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre expérimenté Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Tout simplement ne pas lancer le Application.Run ou sinon ne pas créer de MainForm

    Je pense que ce monsieur parle de Inno setup car InitializeSetup est une fonction appellée pendant la phase d'initialisation de Inno Setup, mais bon, on suppose que son problème est résolu.

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 231
    Par défaut
    Ah effectivement

    Du coup InitializeSetup peut retourner False !

    Faut juste lire la documentation

    function InitializeSetup(): Boolean;
    Called during Setup's initialization. Return False to abort Setup, True otherwise.
    et

    Remarks:
    Abort does not cause Setup or Uninstall to exit unless it's called from one of these event functions (or another function invoked by them):

    InitializeSetup
    InitializeWizard
    CurStepChanged(ssInstall)

    InitializeUninstall
    CurUninstallStepChanged(usAppMutexCheck)
    CurUninstallStepChanged(usUninstall)
    Abort étant plus radical dans ces fonctions qu'ailleurs.
    Aide via F1 - Utilisez l'I.A. - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité ! Sachez-le : l'IA remplace la très grande majorité des développeurs, pas seulement les ignares ...

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre expérimenté Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Par défaut
    Bine vu pour la remarque !

  8. #8
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 254
    Par défaut
    Bonjour,
    Je reviens vers vous et merci pour les messages.
    Je veux, avec inno setup, installer une version démo d'un de mes logiciels. Donc je veux vérifier si une installation a déjà eu lieu en contrôlant l'existence d'une clé dans le registre et, si oui, stopper l'installation et, si la clé n'existe pas, la créer.
    J'ai déjà fait des installateurs avec inno set up mais sans accès au registre.
    Par avance merci

  9. #9
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 254
    Par défaut
    Pour être plus précis, je voudrais que, après avoir cliqué sur "OK" dans la boite de dialogue on stoppe l'installation si la clé existe ou on continue si ce n'est pas le cas

  10. #10
    Membre expérimenté Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Par défaut
    Je pense que ce que tu cherches est là :
    https://www.developpez.net/forums/d1...esinstalation/

  11. #11
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 254
    Par défaut
    Merci je ferai des essais demain et je vous tiens au courant.

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 6 008
    Par défaut
    Procéder ainsi empêchera toute mise à jour par l'installateur. Est-ce logique ?

    On utiliserait plutôt InitializeSetup pour s'assurer que toutes les conditions sont remplies avant installation (dépendances manquantes).

    Et spécifie SOFTWARE\MaClé uniquement, la redirection WOW6432Node est automatique.

  13. #13
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 254
    Par défaut
    Merci pour vos réponses.
    Je ne comprends pas, je veux créer la clé suite à une condition dans la section [code] alors que si je mets le code ci-dessous dans [Registry] cela ne va pas créer la clé comme je le souhaite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [Registry]  
    Root: HKLM; Subkey: "HKEY_LOCAL_MACHINE,'SOFTWARE\MaClé"; ValueType: string; ValueName: "path"; ValueData: "{app}"; Flags: uninsdeletevalue
    .

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 6 008
    Par défaut
    La racine est définie par Root, Subkey est uniquement le chemin depuis cette racine.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Registry]  
    Root: HKLM; Subkey: "SOFTWARE\MaClé"; ValueType: string; ValueName: "path"; ValueData: "{app}"
    Pour ajouter une validation par code, il faut une commande Check.
    J'ajouterais également la suppression de la clé à la désinstallation, uninsdeletevalue ne supprimant que la valeur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [Registry]  
    Root: HKLM; Subkey: "SOFTWARE\MaClé"; Flags: uninsdeletekey
    Root: HKLM; Subkey: "SOFTWARE\MaClé"; ValueType: string; ValueName: "path"; ValueData: "{app}"; Check: DoWritePath
     
    [Code]
    function DoWritePath :boolean;
    begin
      Result := ...;
    end;

  15. #15
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 254
    Par défaut
    Bonjour et merci,
    Voici mon 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
    24
     
    [Registry]
    Root: HKLM; Subkey: "SOFTWARE\MaClé"; Flags: uninsdeletekey
    Root: HKLM; Subkey: "SOFTWARE\MaClé"; ValueType: string; ValueName: "path"; ValueData: "{app}"; Check: DoWritePath
     
    [Code]
    function InitializeSetup(): Boolean;
    	begin
    		if RegKeyExists(HKEY_LOCAL_MACHINE,'SOFTWARE\MaClé') = true then
            begin
            Msgbox('Clé présente',mbConfirmation,MB_OK);
            Result:=true;
            //Mettre fin à l'installation
            end    
    	else
            begin
    				Msgbox('Clé absente',mbConfirmation,MB_OK);
    				 //Créer la clé
            begin
    				function DoWritePath :boolean;
    				Result :=true;     
            end;     
    	end;
      end;
    La compilation me donne ce message d'erreur : "identifier expected"...

Discussions similaires

  1. Bases à supprimé après une installation de SQL Server ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/03/2005, 16h57
  2. Message d'erreur à l'exécution d'une install
    Par titof dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 22/03/2005, 11h20
  3. Interrompre une connexion ?
    Par BoBoToTo dans le forum Bases de données
    Réponses: 7
    Dernier message: 29/10/2004, 09h26
  4. Problème de BOOT sur CD pour une installation d'une DEBIAN
    Par black is beautiful dans le forum Debian
    Réponses: 7
    Dernier message: 22/09/2004, 21h15
  5. Créer une install
    Par Erwin dans le forum MFC
    Réponses: 13
    Dernier message: 27/01/2004, 18h25

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