IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

modifier une variable d'environnement


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2002
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2002
    Messages : 106
    Par défaut 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 : 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);
    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

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Beh c'est normal...

    LEs variables d'environnement que tu positionnes dans TON programme n'ont pour portée que TON programme...

    Donc, si tu veux faire un changement complet, il faut aller taper dans la base de registre, la ou se trouve les définitions des variables d'environnement

    J'ai plus le path exacte pour y acceder, mais un truc simple pour trouver:

    Tu fais Regedit (sous ton invité de commande)
    et dans regedit, tu fais une recherche sur un nom de variable d'environnement
    que tu connais.. tu regardes le chemin d'acces et dans ton programme, tu n'auras plus qu'à faire de l'edition de variable de registre (facile avec les fonctions fournis par le framework

    The Monz, Toulouse

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2002
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2002
    Messages : 106
    Par défaut
    C'est bien ça merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/06/2014, 18h38
  2. [VARIABLE ENVIRONNEMENT] modifier une variable
    Par vbcasimir dans le forum Langage
    Réponses: 3
    Dernier message: 20/10/2011, 13h05
  3. Modifier une variable d'environnement
    Par Mister Nono dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 04/02/2010, 14h17
  4. Modifier une variable d'environnement
    Par Mister Nono dans le forum Windows 7
    Réponses: 2
    Dernier message: 02/11/2009, 17h59
  5. [BES] Création d'une variable d'environnement
    Par NGI80 dans le forum Autres
    Réponses: 2
    Dernier message: 17/10/2002, 07h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo