Variables d'environnement

Chaque processus a un bloc d’environnement qui contient un ensemble de variables d’environnement et leurs valeurs. Il existe deux types de variables d’environnement : les variables d’environnement utilisateur (définies pour chaque utilisateur) et les variables d’environnement système (définies pour tout le monde).

Par défaut, un processus enfant hérite des variables d’environnement de son processus parent. Les programmes démarrés par le processeur de commandes héritent des variables d’environnement du processeur de commandes. Pour spécifier un autre environnement pour un processus enfant, créez un bloc d’environnement et passez un pointeur vers celui-ci en tant que paramètre vers la fonction CreateProcess .

Le processeur de commandes fournit la commande set pour afficher son bloc d’environnement ou pour créer de nouvelles variables d’environnement. Vous pouvez également afficher ou modifier les variables d’environnement en sélectionnant Systèmedans le Panneau de configuration, en sélectionnant Paramètres système avancés, puis en cliquant sur Variables d’environnement.

Chaque bloc d’environnement contient les variables d’environnement au format suivant :

Var1=Valeur1\0
Var2=Valeur2\0
Var3=Valeur3\0
...
Varn=ValueN\0\0

Le nom d’une variable d’environnement ne peut pas inclure un signe égal (=).

La fonction GetEnvironmentStrings retourne un pointeur vers le bloc d’environnement du processus appelant. Il doit être traité comme un bloc en lecture seule ; ne le modifiez pas directement. Utilisez plutôt la fonction SetEnvironmentVariable pour modifier une variable d’environnement. Lorsque vous avez terminé avec le bloc d’environnement obtenu à partir de GetEnvironmentStrings, appelez la fonction FreeEnvironmentStrings pour libérer le bloc.

L’appel de SetEnvironmentVariable n’a aucun effet sur les variables d’environnement système. Pour ajouter ou modifier par programmation des variables d’environnement système, ajoutez-les à la clé de RegistreHKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment , puis diffusez un message WM_SETTINGCHANGE avec lParam défini sur la chaîne « Environnement ». Cela permet aux applications, telles que l’interpréteur de commandes, de récupérer vos mises à jour.

La taille maximale d’une variable d’environnement définie par l’utilisateur est de 32 767 caractères. Il n’existe aucune limitation technique sur la taille du bloc d’environnement. Toutefois, il existe des limites pratiques en fonction du mécanisme utilisé pour accéder au bloc. Par exemple, un fichier batch ne peut pas définir une variable plus longue que la longueur maximale de la ligne de commande.

Windows Server 2003 et Windows XP : La taille maximale du bloc d’environnement pour le processus est de 32 767 caractères. À compter de Windows Vista et Windows Server 2008, il n’existe aucune limitation technique sur la taille du bloc d’environnement.

La fonction GetEnvironmentVariable détermine si une variable spécifiée est définie dans l’environnement du processus appelant et, le cas échéant, quelle est sa valeur.

Pour récupérer une copie du bloc d’environnement pour un utilisateur donné, utilisez la fonction CreateEnvironmentBlock .

Pour développer des chaînes de variables d’environnement, utilisez la fonction ExpandEnvironmentStrings .

Modification des variables d’environnement

Variables d’environnement utilisateur