Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment forcer la mise à jour des variables d'environnement Windows

1 réponse
Avatar
Erika
Bonjour,

Je cherche, à créer (via PERL), puis à exploiter (via n'importe quelle
application Windows), dans une même session Windows (XP/2K), une variable
d'environnement utilisateur.

Pour ce faire, je n'utilise pas $ENV (qui semble n'être que les variables
d'environnement du script PERL), mais j'écris directement ma nouvelle
variable en base de registre (HKCU\\Environment).

Celle-ci est effectivement bien créée, mais elle n'est pas disponible
dans la session Windows courante (par contre, elle l'est après avoir
fermé puis réouvert sa session).

Existe-t-il un moyen de forcer Windows à mettre à jour cette variable
d'environnement nouvellement créée (ou modifiée), afin qu'elle soit
immédiatement disponible pour toute application qui en aurait besoin,
SANS FERMER sa session ???

Merci par avance,

Erika

1 réponse

Avatar
jl_morel
Dans l'article ,
a dit...

Je cherche, à créer (via PERL), puis à exploiter (via n'importe quelle
application Windows), dans une même session Windows (XP/2K), une variable
d'environnement utilisateur.

Pour ce faire, je n'utilise pas $ENV (qui semble n'être que les variables
d'environnement du script PERL), mais j'écris directement ma nouvelle
variable en base de registre (HKCUEnvironment).

Celle-ci est effectivement bien créée, mais elle n'est pas disponible
dans la session Windows courante (par contre, elle l'est après avoir
fermé puis réouvert sa session).

Existe-t-il un moyen de forcer Windows à mettre à jour cette variable
d'environnement nouvellement créée (ou modifiée), afin qu'elle soit
immédiatement disponible pour toute application qui en aurait besoin,
SANS FERMER sa session ???



Il faut prévenir le système que l'environnement a changé en envoyant le
message WM_SETTINGCHANGE à toutes les applications.
Voir Microsoft KB :

http://support.microsoft.com/kb/104011/en-us

Le plus simple pour modifier/créer une variable d'environnement avec Perl
est d'utiliser la fonction SetEnvVar du module Win32::AdminMisc (il fait
automatiquement la mise à jour du système) :

http://www.roth.net/perl/adminmisc/#SetEnvVar

Le module s'installe avec ppm :

ppm install http://www.roth.net/perl/packages/Win32-AdminMisc.ppd

--
J-L.M.
http://www.bribes.org/perl