Portabiliser une application avec le Batch

Septembre 2016



Introduction


Voici un tutoriel vous permettant de suivre pas à pas la création d'un lanceur facilement pour une application qui n'est pas normalement portable, celle-ci inscrivant ses paramètres dans la base de registre. Pour ce tutoriel, quelques connaissances en batch sont recommandées. J'ai pris comme exemple la portabilisation de Angry IP Scanner avec les outils suivants:

Le langage de programmation Batch (inclus dans Windows)

NB: 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é.
S'il y a besoin d'enregistrer une dll/ocx : pas besoin d'essayer.

Sauvegarde des paramètres


Pour connaitre la ou les clés modifiées ou créées dans la base de registre par l'utilisation de Angry IP Scanner, nous allons faire un "tracing" de l'utilisation du registre par Angry IP Scanner.

Lancer RegFromApp

Déroulez le menu "Files"->'Démarrer un nouveau processus"->"Browse..."->Sélectionnez votre exécutable->Cochez "Start Tracing immediately" puis validez :



Nous allons ensuite sauvegarder les options de Angry IP Scanner dans un dossier nommé "Data" :



Maintenant nous devons copier l'intégralité de l'application (le petit exécutable en gros...) dans un répertoire nommé "App" :


Portabilisation (Création du Batch)


Maintenant, nous allons coder le lanceur en Batch à la racine du dossier (par exemple "Start.bat"), il faut ouvrir ce fichier avec Notepad par exemple et mettre ce que l'on a trouvé comme paramètres de registre et qui sont normalement dans le dossier "Settings" (une petite image pour vous rappeler ^^):



Mais que va-t-on faire avec ceci ? Ben on va pouvoir pondre le fichier batch pardi ;-) !
Donc lancez votre éditeur de texte favori et mettez ce code là-dedans:


@Echo Off
Set regpath=HKEY_CURRENT_USER\Software\Angryziber
Title Angry Ip Scanner Portable
Echo Lancement de Angry IP Scanner...
Reg Import "Data\Settings.reg"
Appipscan.exe
Echo Nettoyage...
Reg Export /Y "%regpath%" "Data\Settings.reg"
Reg Delete /F /VA "%regpath%"
  • Selon votre logiciel, il va falloir changer la variable regpath


Une fenêtre sera là durant l'utilisation su programme, mais vous pouvez aller sur ce site et y mettre votre script, sans oublier toutefois de cocher "Invisible Application" ! Vous pourrez ensuite changer l'icône avec Resource Hacker.

Attention : les fichiers créés à l'aide de ce convertisseur en ligne sont susceptibles de faire réagir à tort les antivirus.

A noter que Angry IP Scanner ne laisse pas de documents récalcitrants sur le disque dur mais vous pouvez les copier ensuite sur la clé comme ceci, en admettant que %datapath% est l'adresse des documents laissés à la fermeture de Angry IP Scanner, le code sera comme ceci:


@Echo Off
Set regpath=HKEY_CURRENT_USER\Software\Angryziber
Set datapath=%SystemDrive%\Dossier à supprimer
Title Angry Ip Scanner Portable
Echo Lancement de Angry IP Scanner...
If Exist "Data\Backup" Copy /Y "Data\Backup" "%datapath%
Reg Import "Data\Settings.reg"
Start /wait "Appipscan.exe "
Echo Nettoyage...
Copy /Y "%datapath%" "Data\Backup"
Reg Export /Y "%regpath%" "Data\Settings.reg"
Reg Delete /F /VA "%regpath%"

J'ajoute que l'on peut analyser si le logiciel crée des documents dans le disque dur avec File Monitor de Sysinternals.

Autres Liens


A voir également :

Ce document intitulé «  Portabiliser une application avec le Batch  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.