Variabili di ambiente

Ogni processo ha un blocco di ambiente che contiene un set di variabili di ambiente e i relativi valori. Esistono due tipi di variabili di ambiente: variabili di ambiente utente (impostate per ogni utente) e variabili di ambiente di sistema (impostate per tutti).

Per impostazione predefinita, un processo figlio eredita le variabili di ambiente del processo padre. I programmi avviati dal processore di comando ereditano le variabili di ambiente del processore di comando. Per specificare un ambiente diverso per un processo figlio, creare un nuovo blocco di ambiente e passarlo come parametro alla funzione CreateProcess .

Il processore di comandi fornisce il comando set per visualizzare il blocco di ambiente o per creare nuove variabili di ambiente. È anche possibile visualizzare o modificare le variabili di ambiente selezionando Sistema dalla Pannello di controllo, selezionando Impostazioni di sistema avanzate e facendo clic su Variabili di ambiente.

Ogni blocco di ambiente contiene le variabili di ambiente nel formato seguente:

Var1=Valore1\0
Var2=Valore2\0
Var3=Valore3\0
...
VarN=ValueN\0\0

Il nome di una variabile di ambiente non può includere un segno di uguale (=).

La funzione GetEnvironmentStrings restituisce un puntatore al blocco di ambiente del processo chiamante. Questa operazione deve essere considerata come blocco di sola lettura; non modificarla direttamente. Usare invece la funzione SetEnvironmentVariable per modificare una variabile di ambiente. Al termine del blocco di ambiente ottenuto da GetEnvironmentStrings, chiamare la funzione FreeEnvironmentStrings per liberare il blocco.

La chiamata a SetEnvironmentVariable non ha alcun effetto sulle variabili di ambiente di sistema. Per aggiungere o modificare a livello di codice le variabili di ambiente di sistema, aggiungerle alla chiave del Registro di sistema HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment , quindi trasmettere un messaggio WM_SETTINGCHANGE con lParam impostato sulla stringa "Ambiente". Ciò consente alle applicazioni, ad esempio la shell, di raccogliere gli aggiornamenti.

La dimensione massima di una variabile di ambiente definita dall'utente è di 32.767 caratteri. Non esiste alcuna limitazione tecnica sulle dimensioni del blocco di ambiente. Tuttavia, esistono limiti pratici a seconda del meccanismo usato per accedere al blocco. Ad esempio, un file batch non può impostare una variabile più lunga della lunghezza massima della riga di comando.

Windows Server 2003 e Windows XP: La dimensione massima del blocco di ambiente per il processo è di 32.767 caratteri. A partire da Windows Vista e Windows Server 2008, non esiste alcuna limitazione tecnica sulle dimensioni del blocco di ambiente.

La funzione GetEnvironmentVariable determina se una variabile specificata è definita nell'ambiente del processo chiamante e, in tal caso, qual è il relativo valore.

Per recuperare una copia del blocco di ambiente per un determinato utente, usare la funzione CreateEnvironmentBlock .

Per espandere le stringhe di variabile di ambiente, usare la funzione ExpandEnvironmentStrings .

Modifica delle variabili di ambiente

Variabili di ambiente utente