Portabiliser une application avec NSIS

Dernière mise à jour le 16 juin 2009 à 17:56 par gobiel
Publié par gobiel
Source : http://pon.fr



I) Introduction


Voici un nouveau tutoriel vous permettant de suivre pas à pas la création d’un lanceur avec NSIS et le template libre de Karl Loncarek. Pour ce tutoriel, j’ai repris l’exemple de la portabilisation de heidiSQL en l’adaptant, afin de permettre la comparaison des deux techniques. Il est à noter que le template utilisé est largement plus complet que ce que ce je vous avez présenté pour AutoIt et je ne décrirais ici que ses principales fonctions c’est à dire la création d’un lanceur simple pour une application ne nécessitant que peu d’efforts pour être portabilisée. Mais il peut beaucoup plus.

Note: Si le programme possède un driver, il ne peut pas être portable de cette manière.
Si le programme possède des fichiers dans le répertoire Windows ou d'autres répertoires système: il ne peut pas être portabilisé.
Si il y a besoin d'enregistrer une dll/ocx : il ne peut pas être portable non plus.

Comme avec AutoIt, il nous faut connaître les clés de registre utilisées par le soft à portabiliser, ainsi que les éventuels répertoires de configuration (autres que les sous répertoires de l’application) comme les répertoires de l’application dans le profil courant. Pour HeidiSQL pas de répertoire et la seule clé de registre est : HKEY_CURRENT_USER\Software\HeidiSQL
Téléchargez et ouvrez le template de Karl Loncarek avec un éditeur de texte un peu évolué de type PSPad ou Notepad++
Passons les premières lignes commentées par un ; (point virgule) c’est le copyright du template.


II) Modification du template


Vous pouvez éventuellement modifier les toutes premières lignes pour mettre le nom, la version, et votre site web.
Passons maintenant à la section Define constants du template.
Les lignes de cette section commence toutes par !define et les valeurs à modifier sont comprises entre deux "".
!define AUTHOR ""; => Mettez votre nom ou pseudo entre les deux ""
!define APP "" ; => Mettez entre les deux "" le nom de l’application et de son répertoire
!define VER "0.0.0.0" ; Modifiez les 4 zéros pour indiquer le n° de version du lanceur.
!define EXE "" ; Mettez entre les deux "" le nom de l’exécutable
!define PNAME "${App}Portable" ; format du nom du lanceur
!define ICON "${PNAME}.ico" ; si vous voulez mettre un icône personnalisé (autre que celui par défaut de NSIS) mettez le dans le même répertoire que le template avec le même format de nom qu’a cette ligne, commentez (via un point virgule) la ligne si vous voulez garder l’icône NSIS.
!define SPLASHIMAGE "${PNAME}.jpg" ; Si vous voulez ajouter un splashscreen au lanceur, commentez (via un point virgule) la ligne si vous ne voulez pas d’image de présentation.
!define REGKEYS "" ; C’est la que notre clé de registre doit être ajoutée. si vous avez plusieurs clés à insérer séparez les par un le double symbole || ((AltGr + 6) 2 fois) commentez (via un point virgule) la ligne si il n’y a pas de clé de registre.
!define SETTINGSFILES "" ; Cette ligne est pour les éventuels fichiers de configuration (.ini) avec leurs chemin relatif. Si il y en a plusieurs séparez les par un le double symbole || ((AltGr + 6) 2 fois) commentez (via un point virgule) la ligne si il n’y a pas de fichier .ini.
!define SETTINGSDIRS "" ; Insérer ici les chemins vers les éventuels répertoires àajouter. lors du lancement de l’application. Si il y en a plusieurs séparez les par un le double symbole || ((AltGr + 6) 2 fois) commentez (via un point virgule) la ligne si il n’y a pas de répertoire à ajouter
!define INI "${PNAME}.ini" ; commentez (via un point virgule) cette ligne.

Voici la capture de mon lanceur pour HeidiSQL (Ouvrir le lien dans un nouvel onglet):


III) Compilation


Sauvegardez, votre lanceur est prêt à être compilé. Pensez avant de le faire à ajouter l’éventuel icône et l’éventuel image de démarrage.
pour permettre à NSIS de compiler ce script assurez vous que vous disposez bien du plugin Registry.nsh essentiel à ce template.
Ouvrez NSIS:



Cliquez sur compileur puis sur Lancer MakeNSISW:



Un simple glissez /déposez du fichier template sur la fenêtre du compileur et la compilation s’effectue en indiquant pas à pas les paramètres ajoutés au futur EXE.
Vérifiez bien en fin de compilation que tout c’est passé normalement, si la compilation échoue, c’est ici que vous comprendrez pourquoi.
Il ne vous reste plus qu’a créer la structure de votre application portable.
A la racine du répertoire vous mettrez le lanceur que vous venez de faire. Il vous faut créer deux sous répertoires App et Data. dans App vous mettrez le répertoire contenant les fichiers de l’application à portabiliser.
Que fait ce template magique de plus que le petit bout de script AutoIt? Et bien au démarrage du lanceur, il sauvegarde les éventuels clés de registre, répertoires et fichiers ini que vous lui avez indiquez pour préserver une éventuelle installation existante du logiciel que vous voulez lancer. Ensuite il va lancer votre programme. à l’arrêt de l’application, il sauvegardera les éventuels changements que vous aurez générés à l’utilisation du soft portable. Il les effacera ensuite de l’ordinateur et restaurera les précédents paramètres et fichiers.
Voila. J’espère que ce modeste document vous aidera à améliorer vos propre logiciels portables.

Autres Liens

Meilleures réponses pour « Portabiliser une application avec NSIS » dans :
Portabiliser une application avec ThinApp Voir I) Introduction II) Portabilisation III) Compilation Autres Liens I) Introduction Dans ce tutoriel, nous allons apprendre comment portabiliser une application avec ThinApp Nous allons vous faire la démonstration de portabilisation avec...
Portabiliser une application avec AutoIt Voir Source : http://pon.fr I) Introduction II) Pré-portabilisation III) Portabilisation (création du script) Autres Liens I) Introduction Voici un tutoriel vous permettant de suivre pas à pas la création d’un lanceur pour une application...
Portabiliser une application avec le Batch Voir I) Introduction II) Sauvegarde des paramètres III) Portabilisation (Création du Batch) Autres Liens I) Introduction Voici un tutoriel vous permettant de suivre pas à pas la création d’un lanceur facilement pour une application qui n’est...
Portabiliser une application avec Reg Rapper VoirI) Introduction II) Sauvegarde des paramètres III) Portabilisation (Création des paramètres) Autres Liens I) Introduction Voici un tutoriel vous permettant de suivre pas à pas la création d’un lanceur facilement pour une application qui...
6 applications professionnelles pour votre iPhone Voir6 applications professionnelles pour votre iPhone Pratique et au design séduisant, l’iPhone d’Apple est entré en été 2007 sur le marché avec un très grand succès. Avec déjà des fonctionnalités pré-intégrées performantes, Apple propose en plus sur...
.exe n'est pas une application Win32 valide VoirLorsque vous lancez un fichier exécutable, Windows vous affiche un message du type : Nom de l'application n'est pas une application Win32 valide Pour y remédier, il existe plusieurs solutions correspondant à différentes causes...
Télécharger NSIS VoirNSIS (Nullsoft Scriptable Install System) est un système libre permettant de créer des installeurs pour Windows. Il a été conçu de manière à être le plus souple possible et à permettre la distribution d'un logiciel via Internet. Un installeur sûr...
TMA (Tierce Maintenance Applicative) VoirTierce maintenance applicative La tierce maintenance applicative (notée TMA) consiste à externaliser la maintenance des applications, c'est-à-dire confier tout ou partie de la maintenance des applications à un prestataire informatique tiers contre...
Enterprise Application Integration (EAI) VoirIntroduction à la notion d'EAI L'objet de l'EAI (Enterprise Application Integration, traduisez intégration des applications de l'entreprise) est l'intéropérabilité et l'organisation de la circulation de l'information entre des applications...
Application Service Provider (ASP) VoirNotion d'hébergement de service Le terme ASP (Application Service Provider, en français FAH pour Fournisseur d'applications hébergées) désigne la fourniture par un prestataire d'une application utilisable à travers les réseaux. Il s'agit donc de...