modifier une variable d'environnement
Bonjour à tous,
je souhaite écrire un petit module en C# qui mettera à jour la variable d'environnement Path lors de l'installation d'un autre programme (ajout de deux chemins si ils n'existent pas déjà).
Ayant .NET 2003, je ne peux utiliser directement la méthode Environment.SetEnvironmentVariable qui n'est implémentée qu'à partir de 2005.
J'utilise donc l'API comme on le voit sur le code ci-dessous:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
[DllImport("kernel32.dll", SetLastError=true)]
static extern bool SetEnvironmentVariable(string lpName, string lpValue);
[...]
string sPath = Environment.GetEnvironmentVariable("Path");
if (sPath.IndexOf("C:\\matlab6p5\\bin\\win32") == -1)
{
sPath += ";C:\\matlab6p5\\bin\\win32";
}
if (sPath.IndexOf("C:\\matlab6p5\\toolbox") == -1)
{
sPath += ";C:\\matlab6p5\\toolbox";
}
EnvironmentPermission environmentPermission = new EnvironmentPermission(EnvironmentPermissionAccess.Write,"Path");
environmentPermission.Demand();
SetEnvironmentVariable("Path",sPath); |
Mon problème est que le programme s'exécute sans erreur mais ne fait rien, à savoir que ma variable d'environnement n'est absolument pas à un jour.
Redémarrer l'ordinateur ne change rien.
Merci d'avance pour toute réponse,
Julien