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] verifier si le logiciel est déjà installé ou pas


Sujet :

Outils Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut [inno Setup] verifier si le logiciel est déjà installé ou pas
    Bonjour tt le monde,

    Je travaille sous inno setup afin de programmer un installer pour un software. je veux savoir s'il y a une possibilité de vérifier avant de débuter toute installation si le programme existe déjà sur la machine ou pas et en plus:
    Si la logiciel existe demander alors
    case:
    1)On veut supprimer l'ancienne version
    2)On veut réparer
    3)Ou rien faire
    (à l'utilisateur de voir ce qu'il veut faire)

    Sinon
    Installation du software.
    FinSi

    j'ai trouvé ce code sauf qu'il marche pas pour moi:

    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
     
    function IsUpgrade(): Boolean;
    	var
    	   sPrevPath: String;
    	begin
    		sPrevPath := '';
    		if not RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppID")}_is1', 'UninstallString', sPrevpath) then
    			RegQueryStringValue(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppID")}_is1', 'UninstallString', sPrevpath);
    			Result := (sPrevPath <> '');
    	end;
     
    function ShouldSkipPage(PageID: Integer): Boolean;
    	begin
    		Result := False;
    		if IsUpgrade() then
    		begin
    			if PageID = wpSelectDir then Result := True;
    			if PageID = wpSelectProgramGroup then Result := True;
    		end;
    	end;
    est ce que quelqu'un serait m'expliquer d'abord ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppID")}_is1', 'UninstallString', sPrevpath)
    et puis est ce que vous saurez ce qui cloche pour que ça ne marche pas??

    Merci d'avance pour vos réponses.

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Il y avait une discussion qui justement tourner un peu sur le fait de savoir si une application était déjà installée ...
    Tu peux aller voir ici

    A+

  3. #3
    Membre émérite
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    991
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 991
    Par défaut
    Citation Envoyé par ririrourou Voir le message
    est ce que quelqu'un serait m'expliquer d'abord ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppID")}_is1', 'UninstallString', sPrevpath)
    et puis est ce que vous saurez ce qui cloche pour que ça ne marche pas??
    sa vérifie si dans le registre ton installeur a déjà créé une clef ce qui indique qu'il est déjà installé.

    pourquoi sa fonctionne pas?
    -tu as inno setup avec preprocessor?
    -TON installateur est desinstallable ()?
    -tu as bien ceci pas la même valeur:
    [Setup]
    AppId={{F1A91353-D667-428F-8096-7CD24189CAE8}

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    bonjour tout le monde,
    Merci d'abord pour vos réponse, je travaille actuellement sur une application .jar qui me permet simplement d'afficher une plateforme créée en java, donc normalement mon installeur est installable enfin si ce que tu veux dire par désinstallable (si ce que tu veux dire par désinstallable est qu'il ne permet pas de lancer l'application et de pourvoir le voir au menu démarrer) pour le préprocesseur je sais pas quoi te répondre j'ai installer le inno setup 5 et istool c'est tout ce que je peux dire. sinon pour la valeur dans la base de registre je sais même pas ou la trouver dans mon disque dur normalement j'ai demandé a ce qu'on la met dans le PATH mais concrétement je sais pas la trouver.

    Merci encore une fois pour vos réponses.

    Cordialement

  5. #5
    Membre émérite
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    991
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 991
    Par défaut
    pour savoir si tu as le preprocesseur, tu démarre inno setup, si dans la barre de titre il est écrit:
    inno setup compiler 5.2.3 (ISPP 5.2.3.0)
    c'est que tu l'as!

    quand je dis désinstallable, c'est si tu n'a pas sa:
    [Setup]
    Uninstallable=no
    car ceci empêche la création de la clef registre qui est utilisé pour vérifier si le logiciel est déjà présent

    quand au code que tu as mis tu devrais utiliser lors de
    function InitializeSetup(): Boolean; Called during Setup's initialization. Return False to abort Setup, True otherwise.
    la tu vérifie grâce à ta fonction l'éxistance ou non du produit et tu propose les choix à l'utilisateur.
    il y a sa aussi c'est peut-etre ce que tu cherche http://www.han-soft.com/uninshs.php

Discussions similaires

  1. Réponses: 8
    Dernier message: 02/01/2014, 00h54
  2. Réponses: 4
    Dernier message: 05/08/2010, 16h01
  3. Réponses: 4
    Dernier message: 02/03/2010, 17h25
  4. [Inno Setup] Modif date d'un fichier à l'install
    Par ValerieDo dans le forum Outils
    Réponses: 1
    Dernier message: 19/01/2009, 13h48

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