Support pour Winamp, Windows Media Player, Media Center et VLC.

Tout pour créer sa fenêtre d'installation personnalisée


Tutorial pour utilisateurs avancés

Késako

La fonction ChangeUI permet d'utiliser d'autres présentations pour vos installations, en ajoutant par exemple une image (à l'aide d'une autre fonction) ! Pour information, UI signifie User Interface (ou Interface Utilisateur) !

Utilisation

On va essayer de faire une initiation !
Avant de voir comment modifier une fenêtre, nous allons comprendre comment l'intégrer dans le script nsi !

Disposition

Il existe deux moyens pour insérer une image dans une interface NSIS.

Le premier moyen consiste à utiliser la commande AddBrandingImage afin d'insérer un emplacement vierge spécifique à la "marque". Cette zone sera présente sur l'ensemble des fenêtres de votre programme d'installation.
L'exemple ci dessous ajoute un espace de 100 pixels, en haut de l'interface, et avec 2 pixels de marge interne à la zone. :

AddBrandingImage top 100 2

Le second moyen consiste à modifier les ressources de l'interface utilisée comme modèle en insérant un contrôle image. Nous vous préconisons d'utiliser le répertoire \Contrib\UIs, dans le dossier d'installation de NSIS ! Des fichiers exe sont déjà présents et contiennent les nouvelles fenêtres à utiliser. Nous utiliserons pour le moment un fichier 'mlbl2.exe' qui n'integrera que la fenêtre 105 pour n'ajouter l'image que dans l'une des fenêtres de notre installation.
Pour prendre en compte notre nouvelle fenêtre type, on insèrera simplement :

ChangeUI IDD_INST "${NSISDIR}\Contrib\UIs\mlbl2.exe"

Un peu plus d'informations

Comment ca : c'est tout ??? et bien oui ! Un peu d'explication toutefois, avant de continuer... !
Tout d'abord, un exécutable comme NSIS est constitué de ressources ! Ces ressources vont être des objets (fenêtres, menus, textes, images...) utilisés par le programme (ou par plusieurs, dans le cas des DLL)... Je dirais juste que tous ces objets ne sont pas dans les ressources, mais je ne veux pas trop vous embrouiller l'esprit ;) !
Le fonctionnement de cette fonction est simple : vous allez lui spécifier un fichier qui ne contient que des ressources (en l'occurence, ici, les fichiers exe), et le programme va lire, et remplacer les ressources de NSIS par défaut par les nouvelles ! Bon, ca semble simple, mais c'est assez compliqué à mettre en oeuvre !
Cette petite précision se rend utile pour comprendre à quoi sert le premier argument ! Je rappelle que l'executable UI est composé de ressources ! Ici, celles utilisées sont surtout des fenêtres ! Il est possible de n'utiliser, soit qu'une fenêtre de l'exécutable, soit toutes celles qu'il intègre. Cet argument permet de préciser que l'on veut importer toutes les fenêtres (all) ou bien une seule ! Dans ce cas, les options possibles sont (dans l'ordre des ressources dans l'executable) :

  • IDD_LICENSE : pour personnaliser la page de la licence
  • IDD_DIR : pour personnaliser la page de sélection du répertoire
  • IDD_SELCOM : pour personnaliser la page de sélection des sections
  • IDD_INST : pour personnaliser l'aspect général de toutes les pages
  • IDD_INSTFILES : pour personnaliser la page de copie des fichiers
  • IDD_UNINST : pour personnaliser la page de désinstallation

Editer les ressources

On y vient ! Pour modifier les ressources, je vous conseille le logiciel ResourceHacker, très simple d'utilisation, léger et assez complet (même si ce n'est pas le seul à permettre ce genre d'opération) ! Ce programme est téléchargeable sur mon site, en français !
Une fois installé, cliquez avec le bouton droit sur l'éxecutable à modifier, et sélectionnez 'Modifier avec Resource Hacker' ! Vous comprendrez mieux en image ;) !

reshack

Vous pourrez ensuite ajouter, modifier, supprimer des élements des fenêtres ! Attention tout de même, certains éléments sont obligatoires dans les fenêtres (voir l'aide) !

Enregistrez le fichier en tant que mlbl2.exe afin que cela soit cohérent avec le script écrit plus haut.

Ajouter simplement une image

Pour cela, je vous conseille, pour plus de facilité, de créer un contrôle image dans les ressources (numéro 105 (IDD_INST) pour que celle-ci soit visible dans toutes les pages de l'installation) ! La créer vous même vous permettra d'en faire ce que vous voudrez... ce qui est plus simple ;) !
Une fois la ressource créer, le reste est très simple : tout le reste n'est que du copier/coller

Pour votre installation, vous devez ajouter la commande suivante :

Function .onGUIInit # Dans le cas où vous utilisez AddBrandingImage SetBrandingImage "chemin/vers/le/fichier.bmp" # Dans le cas où vous utilisez ChangeUI SetBrandingImage /IMGID= /RESIZETOFIT "chemin/vers/le/fichier.bmp" FunctionEnd

Note : "/RESIZETOFIT" permet de redimensionner à la volée l'image en fonction de la taille disponible. Note : Il vous est possible de modifier l'image pour chaque page en rappelant la fonction SetBrandingImage dans la pre fonction de la page concernée.

Pour la désinstallation :

Function un.onGUIInit # Dans le cas où vous utilisez AddBrandingImage SetBrandingImage "chemin/vers/le/fichier.bmp" # Dans le cas où vous utilisez ChangeUI SetBrandingImage /IMGID= /RESIZETOFIT "chemin/vers/le/fichier.bmp" FunctionEnd

changeuiresult



Une idée de pas à pas ?

Contactez Julien.