[Inno Setup] Installation ou mise à jours d'un logiciel

Résolu
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 - 10 déc. 2008 à 10:14
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 - 15 déc. 2008 à 12:39
Bonjour ,
Alors voila je fait en ce moment un setup avec "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 ce faire, je crée un écran supplémentaire
demandant quel "instance" du logiciel est à mettre à jour ou si il
s'agit d'une nouvelle installation. Pour tout sa pas de problème.

Mon problème :
- Si je cherche à crée cette é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 :
  PageInstallMaj := CreateCustomPage(wpWelcome,ExpandConstant('{cm:PageInstallMajTitrePage}'), ExpandConstant('{cm:PageInstallMajDescriptionPage}'))PageInstallMaj := CreateCustomPage(wpPreparing ,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éponse acceptée"
A voir également:

3 réponses

Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
11 déc. 2008 à 10:44
Bonjour,

J'ai trouvé LA solution (avec l'aide de "Cl@udius" de "developpez.com" et de "Dean Earley" de "jrsoftware" qui nous à servie la solution sur un plateau, encore merci à eux deux)

Le AppID est tout simplement re-chargé à chaque événement CurStepChanged. Donc il n'y à rien à faire . Et moi qui me suis pris la tête pandant presque 2 jours..... La honte

Amicalement
Pensez "Réponse acceptée"
3
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
15 déc. 2008 à 12:39
Une nouvelle fois salut CodeS-SoucreS-ien (et CodeS-SoucreS-ienne surtout)


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 :
WizardForm.DirEdit.Text

L'objet textbox de la form de chois du dossier dans le menu démarrer

Code :
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 installations faite par InnoSetup sont dans la base de registre :

Citation:
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éponse acceptée"
<!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-pa
3
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
10 déc. 2008 à 10:19
Hé il y à un problème de copier collé dans la partie Code de mon message précédant .
Il faut lire :
PageInstallMaj := CreateCustomPage(wpWelcome,ExpandConstant('{cm:PageInstallMajTitrePage}'), ExpandConstant('{cm:PageInstallMajDescriptionPage}'));
0
Rejoignez-nous