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:
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
Redémarrer l'ordinateur ne change rien.
Merci d'avance pour toute réponse,
Julien
Partager