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 ou maj au choix


Sujet :

Outils Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Points : 27
    Points
    27
    Par défaut [inno setup] installation ou maj au choix
    Bonjour ,

    Alors voila je fait en ce moment un setup sur "Inno setup" (en même temps on ne peut pas faire grand chose d'autre avec ). Mon but est de crée un écran supplémentaire permettant de soit faire une nouvelle installation soit de mettre à jour une instance (heeeee une installation d'un logiciel sur une machine sa s'appel comme sa non ???).

    Ma situation :
    Pour faire sa je crée un écran supplémentaire demandant quel "instance" du logiciel est à mettre à jour ou si il sagit d'une nouvelle installation. Pour tout sa pas de problème.

    Mon problème :
    Si je cherche à crée cet écran (Code) à l'événement "InitializeSetup" j'ai un bug (Bug). Et si je crée cette écran à l'événement "InitializeWizard" les informations de la partie "[Setup]" (tél que "AppId") on déjà été lut. Je ne trouve plus de solution là .

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PageInstallMaj := CreateCustomPage(wpWelcome ,ExpandConstant('{cm:PageInstallMajTitrePage}'), ExpandConstant('{cm:PageInstallMajDescriptionPage}'));
    Bug :
    Exception: Erreur interne : An attempt was made to access WizardForm before it has been created
    Amicalement
    Pensez "Résolu"

  2. #2
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Points : 27
    Points
    27
    Par défaut
    Sa commence à me prendre la tête ce truc

    Une idée pour résoudre mon problème :
    Est-il possible de gérer le AppId par ligne de commande (comme GROUP pour le dossier dans le menu démarrer par exemple).

    Si oui :
    J'installe un fichier setup.exe dans le dossier temporaire (avec mon installeur actuel). Dans la section [Run] j'ajoute l'exécution de cette installe avec les paramètres qui vont bien (sans oublier "/VERYSILENT" pour que mon utilisateur ne voie pas deux installation coup sur coup et de supprimer ce fichier une fois l'installateur réel exécuté)

    Si non :

    PS :
    Retardé la lecture de certaine info de la partie [Setup] se serais l'idéale mais je ne pense pas sa possible (ni même re-lancé cette lecture)
    Amicalement
    Pensez "Résolu"

  3. #3
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut
    Citation Envoyé par Polack77 Voir le message

    Est-il possible de gérer le AppId par ligne de commande (comme GROUP pour le dossier dans le menu démarrer par exemple).
    A ma connaissance la seule façon de définir un AppID de façon dynamique est d'utiliser {code} comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Setup]
    AppID={code:GetAppId}
    Avec GetAppId étant une fonction que retourne le AppId dont tu auras besoin.

    @+ Claudius

  4. #4
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Points : 27
    Points
    27
    Par défaut
    Merci pour ta réponse (je commençais à me sentir seul, santé )

    Oui mais cette données aurais déjà été lut quand je voudrais la mettre a jour (vue que je veut la configurer par l'interface, à moins que je ne me trompe, ce qui m'arrangerais à vrais dire)

    Amicalement
    Pensez "Résolu"

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Oui effectivement (je viens de vérifier), GetAppID sera appelé avant l'InitializeWizard.

    Ce qui ne résout pas ton problème.

    Mais je me demande: quel est l'intérêt de créer des AppId différents. Ton install ou ta mise jour concerne la même application. Non ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Points : 27
    Points
    27
    Par défaut
    Heeee oui c'est effectivement peut être là que se trouve mon problème.
    Je veut pouvoir installé plusieurs fois la même application (avec le même installeur) sur un ordinateur (avec le même utilisateur).

    Amicalement
    Pensez "Résolu"

  7. #7
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    A d'accord.
    Personnellement je n'ai jamais fait de type de script.

    A creuser peut-être dans ce cas, l'utilisation de [Setup]: UsePreviousAppDir mis à no.

    Ce qui te permettrais de définir selon le contexte tes dossiers de destination.

    @+

  8. #8
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Points : 27
    Points
    27
    Par défaut
    Sa ne risquerais pas de crée des problèmes niveau déinstallateur ?
    Ajout dans les "ajouts suppressions de programmes" ?

    Il faut que je regarde en détail cette option, merci du tuyau
    Amicalement
    Pensez "Résolu"
    -----------------------------------------------------------------------
    Heeee oups
    Tu parle du flag "UsePreviousAppDir" j'avais lut "UsePreviousAppId"
    Comme quoi on lit ce qu'on à envie des fois

    Non sa n'iras pas

    Amicalement
    Pensez "Résolu"

  9. #9
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Je n'ai pas fait de test, mais je pense qu'il y aura une entrée pour chaque installation dans le panneau de config/install-suppr. de programmes.

    @+

  10. #10
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Points : 27
    Points
    27
    Par défaut
    Plusieurs entrée dans les ajouts suppression ????
    Je test sa tout de suite

    Amicalement
    Pensez "Résolu"
    -----------------------------------------------------------------
    Non une seul entrée dans les "ajouts suppressions de programmes" de Windows.
    La seconde efface la première dans ce mode (et il faut exécute directement l'uninstalle pour la première du coup). Je crois que j'avais déjà fait ce test en faite

    Amicalement
    Pensez "Résolu"
    -----------------------------------------------------------------
    Je crois que j'ai une solution
    Bon pas ce qu'il y à de plus classe mais sa devrais faire l'affaire

    Je reviens au double installeur (un qui demande les info à l'utilisateur et un qui installe à proprement dire)

    Méthode :
    -> Le premier installateur demande les informations à l'utilisateur. Ensuite il crée un fichier ini (avec la fonction SetIniString) contenant ces informations. Crée un fichier Setup.exe. Tout sa dans les temporaire de l'utilisateur.
    -> Le second installateur est invisible. Il récup les info du fichier ini et installe en fonction de ce qui s'y trouve.

    Une fois l'exécution terminer les deux fichier (ini et setup.exe) sont supprimé.

    Seul le second installateur crée une entrée dans les ajout suppression et un désinstallateur.

    Cela te parais t'il "viable" comme façon de faire ?

    Amicalement
    Pensez "Résolu"
    -----------------------------------------------------------------
    Les quelques tests que je viens de faire semble m'indiquer que ce mode de fonctionnement est "viable". Je viens de posté sur le news-groupe d'Inno-Setup un message demandant (gentiment évidement ) au dévelopeurs d'Inno Setup une amélioration : pouvoir forcé, ou re-lancé par fonction, la lecture du AppId pour que ce problème ne se pose plus.
    Ici
    Je finirais mon setup demain et je posterais (j'espère y penser ) les principaux flag ici

    Amicalement
    Pensez "Résolu"

  11. #11
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Points : 27
    Points
    27
    Par défaut
    Hè jrsoftware m'à déjà répondu . Définitivement ils sont bien cher jrsoftware .

    La réponse :
    The AppID can change (using a {code:} constant) anytime up to the CurStepChanged(ssInstall) event function I think.
    Quoi quoi ??? Si je comprend bien ce qu'on me raconte (j'ai vraiment un anglais tout pourri ) le AppID est modifié à chaque évènement CurStepChanged.

    J'ai vérifié cette affirmation...... C'est vrais

    Me voila donc rallié au rang de
    Dzl Cl@udius du temps perdu

    Aie ouille Pas trop quand même (même si j'aime bien dans le font ).

    Bon le principal c'est d'avoir trouvé la solution



    Amicalement
    Pensez "Résolu"

  12. #12
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par Polack77 Voir le message
    Dzl Cl@udius du temps perdu
    Y'a pas de quoi.

    Citation Envoyé par Polack77 Voir le message
    Bon le principal c'est d'avoir trouvé la solution


    @+ Claudius

  13. #13
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Points : 27
    Points
    27
    Par défaut Des info en plus ;)
    Une nouvelle fois salut developpez.com-iste

    J'ajoute quelque info ici car dur dur de les trouvées (finalement la solution étais encore une fois dans les newsgroup de jrsoftware)

    Deux référence à des objets (en lecture écriture du coup ) :
    L'objet textbox de la form de chois du dossier d'installation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WizardForm.DirEdit.Text
    L'objet textbox de la form de chois du dossier dans le menu démarrer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WizardForm.GroupEdit.Text
    Évidemment modifier ces données et les info qu'utilisera l'installateur seront modifiées

    De plus toute les information concernant les installation faite par InnoSetup sont dans la base de registre :
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\AppId_is1
    Donc avec sa pour retrouvé le dossier d'installation, le groupe dans le menu démarrer ou toute autre informations concernant les installations précédentes pas de soucis (il ne faut pas oublier la fonction RegQueryStringValue qui permet de lire une clef de registre de type string , ou RegQueryBinaryValue, RegQueryDWordValue, RegQueryMultiStringValue pour les autres type de données)

    Amicalement
    Pensez "Résolu"

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

Discussions similaires

  1. Inno Setup: Installer certains fichiers suivant le choix de l'utilisateur
    Par remfleyf dans le forum Installation, Déploiement et Sécurité
    Réponses: 3
    Dernier message: 17/12/2008, 10h55
  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