Modification des variables d'environnement
Tutorial pour apprentis
Prérequis
NSIS permet de modifier les variables d'environnement à l'aide de scripts assez complexes. Seulement, il ne perme la prise en compte instantanée de la modification. Pour cela, vous pouvez utiliser un plugin : SetEnv.
Installation du plugin
Dans l'archive ZIP se trouvent un fichier indispensable, ainsi que les sources du plugin. Ce tutorial n'utilisera que le fichier : setenv.dll(plugin) à copier dans le répertoire Plugins de votre installation NSIS
Lecture d'une variable d'environnement
Pour le moment, NSIS n'intègre en natif qu'une commande pour la lecture de l'environnement de l'utilisateur : ReadEnvStr. Elle s'utilise très simplement :
ReadEnvStr $R0 "VARIABLE_D_ENVIRONNEMENT"
Ajout/Modification d'une variable d'environnement avec le plugin
Pour modifier écrire dans l'environnement, vous n'avez qu'à utiliser la commande suivante :
SetEnv::SetEnvVar "VARIABLE_D_ENVIRONNEMENT" $R0
Ajout/Modification d'une variable d'environnement sans le plugin
Si vous ne voulez pas ajouter de plugin (si les sources doivent être compilables partout, sans ajout de fichiers chez l'utilisateur) vous pouvez utiliser le code suivant qui sera totalement identique à la commande précédente :
System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i(VARIABLE_D_ENVIRONNEMENT, $R0).r0'
Limitation du plugin
Le plugin ne permet QUE l'ajout/modification. Il ne gère pas la suppression de variables d'environnement. Le code suivant devrait cependant faire l'affaire :
System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i(VARIABLE_D_ENVIRONNEMENT, 0).r0'
Une idée de pas à pas ?
Contactez Julien.
