InstallOptions – Création d’une page récapitulative
Utilité
Afin d’améliorer la présentation de votre installation, vous pouvez ajouter une page, créée avec InstallOptions, à la fin de votre installation, pour récapituler tous les paramètres choisis (dossier d’installation, dossier de création des raccourcis du menu démarrer, type d’installation…).
Comment cela fonctionne ?
Il faut commencer par créer une page de texte avec InstallOptions qui s’affichera avant le début de l’installation.
Il faut ensuite vérifier ce qui est installé pour afficher ces paramètres.
Comment créer et afficher la page ?
Il faut commencer par créer un fichier ini qui va permettre d’afficher le récapitulatif. Créez un fichier IO.ini qui doit ressembler à :
[Settings] NumFields=1 [Field 1] Type=Text Flags=MULTILINE|VSCROLL|NOWORDWRAP|READONLY State="Paramètres" Left=1 Right=-1 Top=1 Bottom=118 MinLen=1
On extrait le fichier ini, au début de l’installation dans un dossier temporaire que l’installation va créer automatiquement :
Function .onInit InitPluginsDir File /oname=$PLUGINSDIR\io.ini IO.ini FunctionEnd
Pour l’interface ModernUI, il faut utiliser :
Function .onInit !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "IO_récap.ini" "recap.ini" FunctionEnd
Il faut définir l’ordre d’affichage des pages. Il faut donc utiliser la fonction page custom Fonction_Afficher Fonction_Quitter Texte :
Page license Page components Page directory page custom RacMD "" ": Raccourcis menu démarrer" page custom IO "" ": Récap de l'installation" Page instfiles
Pour l’interface ModernUI, il faut utiliser :
!insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "License.txt" !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_STARTMENU "" $rac page custom IO "" "" !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH
La page récapitulative va appeler la fonction IO à l’ouverture. Il faut donc maintenant créer cette fonction qui va afficher la page :
Function IO InstallOptions::dialog $PLUGINSDIR\io.ini FunctionEnd
Pour l’interface ModernUI, il faut utiliser :
Function Récap !insertmacro MUI_HEADER_TEXT "Récapitulatif" "Récapitulatif de l'installation" !insertmacro MUI_INSTALLOPTIONS_DISPLAY "io.ini" FunctionEnd
La page s’affiche, il reste maintenant à y inclure les données voulues.
Comment récupérer les paramètres et l’installation et les afficher ?
Type d’installation
Pour commencer, nous allons chercher le type d’installation sélectionné. Il suffit d’utiliser la fonction GetCurInstType $variable qui va ramener le numéro du type d’installation choisi dans $variable.
Le premier type d’installation que vous avez créé correspond au 0, la seconde 1, etc. L’installation personnalisée sera le n° 32.
Comme nous voulons afficher le type d’installation et pas un numéro, nous allons définir le texte des différents types d’installation avec la fonction SectionSetInstTypes numéro_InstTypes Texte
Maintenant que nous avons la valeur, il faut l’afficher. Pour cela nous allons copier la valeur dans le fichier io.ini.
Le script est donc :
Function IO SectionSetInstTypes 0 Standard SectionSetInstTypes 1 Complète SectionSetInstTypes 2 Minimum GetCurInstType $type Strcmp $type 32 "" 3 StrCpy $type Personnalisé Goto 2 InstTypeGetText $type $type StrCpy $recap "$recapType d'installation :\r\n $type" WriteINIStr $PLUGINSDIR\io.ini "Field 1" State "$recap" InstallOptions::dialog $PLUGINSDIR\io.ini FunctionEnd
Pour l’interface ModernUI, la seule chose qui change est :
… !insertmacro MUI_INSTALLOPTIONS_WRITE "io.ini" "Field 1" "State" $recap !insertmacro MUI_HEADER_TEXT "Récapitulatif" "Récapitulatif de l'installation" !insertmacro MUI_INSTALLOPTIONS_DISPLAY "io.ini" FunctionEnd
Programmes installés
Pour cela il faut vérifier si une section a été validée ou pas. La fonction à utiliser est donc SectionGetFlags ${Section} $variable. Si la section est validée, la valeur de $variable est 1, sinon elle sera 0.
Il faut répéter ce script pour toutes les sections que vous souhaitez. On copie ensuite ces données à la suite du texte qui va s’afficher sur la page récap :
StrCpy $prog1 "" SectionGetFlags ${section1} $R1 StrCmp $R1 1 "" 2 StrCpy $prog1 "\r\n Installation de programme 1" StrCpy $prog2 "" SectionGetFlags ${section2} $R1 StrCmp $R1 1 "" 2 StrCpy $prog2 "\r\n Installation de programme 2" StrCpy $recap "$recap\r\n\r\n\r\nChoix des programmes à installer :\r\n $prog1$prog2" WriteINIStr $PLUGINSDIR\io.ini "Field 1" State "$recap" InstallOptions::dialog $PLUGINSDIR\io.ini
Dossier d’installation
Il s’agit de la valeur $INSTDIR.
Il faut donc ajouter simplement :
StrCpy $recap "$recap\r\n\r\n\r\nDossier d'installation :\r\n $INSTDIR"
Dossier du menu démarrer
Pour le menu démarrer, on a dû utiliser une fonction ressemblant à :
Function RacMD Push $creationrac StartMenu::Select /checknoshortcuts "Ne pas créer de menu démarrer" /autoadd /lastused $rac "Essai" Pop $creationrac StrCmp $creationrac "success" success StrCmp $creationrac "cancel" done Return success: Pop $rac done: Pop $creationrac FunctionEnd
On commence par vérifier si on a choisi d’installer ou pas des raccourcis dans le menu démarrer en regardant si le premier caractère de $creationrac est >. Si c’est la cas on affichera un message expliquant qu’aucun raccourcis n’a été ajouté au menu démarrer, sinon on mettra la valeur de $rac.
Le script est donc :
StrCpy $creationrac $rac 1 StrCmp $creationrac ">" "" 3 StrCpy $recap "$recap\r\n\r\n\r\nDossier des raccourcis du menu démarrer :\r\n Pas de raccourcis dans le menu démarrer" Goto 2 StrCpy $recap "$recap\r\n\r\n\r\nDossier des raccourcis du menu démarrer :\r\n $rac"
Une idée de pas à pas ?
Contactez Julien.
