Variables environnements

Résolu
cs_Rastafman Messages postés 8 Date d'inscription vendredi 27 octobre 2000 Statut Membre Dernière intervention 19 juin 2008 - 27 sept. 2007 à 17:55
cs_Rastafman Messages postés 8 Date d'inscription vendredi 27 octobre 2000 Statut Membre Dernière intervention 19 juin 2008 - 19 oct. 2007 à 16:27
Bonjour,

Je cherche à créer et supprimer des variables d'environnements. Ma première idée (créer/supprimer des valeurs dans la clé
"\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment") ne fonctionne pas car il faut que l'utilisateur ai les droits sur la clé ce qui n'est pas le cas de la plupart des utilisateurs.

Auriez-vous une idée peut-être du côté des API pour créer/supprimer des variables d'environnements ?

Par avance merci,

Stef

4 réponses

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
27 sept. 2007 à 21:35
Tu peux créer des variables d'environnment pour un processus que tu crées (CreateProcess), voir SetEnvironmentVariable() dans MSDN.

ciao...
BruNews, MVP VC++
3
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
27 sept. 2007 à 18:14
Salut
Une des solutions serait de demander à DOS de la créer avec la commande SET :
Ajout variable
   set toto=coucou
Liste (*)
   set
Pour la liste, la commande de VB : Environ, mais il semble qu'elle ne tienne pas compte des variables crées ultérieurement au démarrage de la session.
Suppression variable
   set toto=

Tu peux exécuter ces commandes DOS au travers d'un pipe. Cela facilte la récupération des données à un ordre DOS. Voir http://www.vbfrance.com/codes/CAPTURE-TEXTE-PROGRAMME-DOS-PIPE_6395.aspx

En fait, si je lis entre tes lignes, tu voudrais créer cette variable environnement ... mais qu'elle réapparaisse lors d'une future session Windows (Boule2Cristal V2.0) ?
Je ne connais pas d'autre solution que d'utiliser le fichier AutoExec.BAT pour l'insérer (fichier en général vide (sous XP) sur la racine de ton disque dur de boot).

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Rastafman Messages postés 8 Date d'inscription vendredi 27 octobre 2000 Statut Membre Dernière intervention 19 juin 2008
28 sept. 2007 à 11:22
Bonjour,

Merci à vous deux pour vos réponses.

La solution de Jack ne fonctionne pas, lorsque je fais un set, la variable n'est pas créée (lorsque je regarde via propriétés système/Avancé/Variables d'environnement elle est absente) ai-je mal compris quelquechose ?

Sous dos la ligne "SET TOTO=TITI" ne provoque pas d'erreur mais pas de variables TOTO dans la liste des variables d'environnement....etrange ?

BruNews je suis en train de me renseigner sur SetEnvironmentVariable() je vous tiens au courant.

Merci,
Stef
0
cs_Rastafman Messages postés 8 Date d'inscription vendredi 27 octobre 2000 Statut Membre Dernière intervention 19 juin 2008
19 oct. 2007 à 16:27
Bon nickel pour les api SetEnvironmentVariable()
Merci, encore
0