Le script suivant me permet d'écrire puis de lire une variable d'environnement.
Apparemment, la modification de la variable n'est effective que dans le script !
Est ce que j'ai raté une marche ?
Comment rendre cette modification permanente ?
Merci.
Alain CROS.
MsgBox WshEnvironmentItem("TMP", "C:\")
MsgBox WshEnvironmentItem("TMP",Empty)
Function WshEnvironmentItem(Nom, Valeur)
Dim ObjEnvironment
Set ObjEnvironment = CreateObject("WScript.Shell").Environment
If Not IsEmpty(Valeur) Then
ObjEnvironment.Item(Nom) = Valeur
End If
WshEnvironmentItem = ObjEnvironment.Item(Nom)
Set ObjEnvironment = Nothing
End Function
Vous êtes probablement sous Windows 98.
Sous Windows 9x, l'objet WshEnvironment ne permet que la définition de
variables d'environnement
de type "process".
Ce type ne définit des variables d'environnement accessibles que par le
processus en cours.
Sous Windows 9x pour que la variable soit permanente avec une portée globale
vous devez donc avoir recours
à l'utilitaire WINSET.EXE présent sous le répertoire \TOOLS\RESKIT du CD-Rom
Windows 9x.
(Ou mettre une entrée SET dans AUTOEXEC.BAT, mais pour que les variables
soient disponibles il faut redémarrer la machine).
Amicalement,
Jean - JMST
Belgium
"Alain CROS" <Personne@ICI> a écrit dans le message de
news:%23wc1qxQ...@TK2MSFTNGP09.phx.gbl...
Merci pour ces renseignements.
Je suis effectivement sous Win98.
J'en déduit que mon script fonctionne sous 2000 et XP.
Alain CROS.
"Jean" <http://cour...@jmst.be.tf> a écrit dans le message de news: uhpLgXat...@tk2msftngp13.phx.gbl...
> J'en déduit que mon script fonctionne sous 2000 et XP.
Non.
-Si par fonctionner vous entendez "fonctionner comme sous Windows 9x" :
Par défaut le type de variable utilisé par l'objet WshEnvironment est
"process" sous Windows 9x et "system" sous Windows 2000/XP.
Vous devez donc préciser le type de variable "process" pour qu'il soit
compatible Windows 9x et 2000/XP.
Ce qui revient a modifier la ligne sivante dans votre script :
Set ObjEnvironment = CreateObject("WScript.Shell").Environment
en
Set ObjEnvironment = CreateObject("WScript.Shell").Environment("PROCESS")
-Si vous entendez "la variable est permanente sous Windows 2000/XP":
Pour qu'elle soit permanente sous XP/2000 vous devez utiliser une variable
de type "user" pour modifier les variables d'environnement TMP ou TEMP.
Soit :
'---8<---
CreateObject("WScript.Shell")_
.Environment("USER")_
("TMP")="C:\"
WScript.Echo _
CreateObject("WScript.Shell")_
.Environment("USER")("TMP")
'---8<---
Alain CROS.
>-----Message d'origine-----
>.
>