Condividi tramite


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 comandi ereditano le variabili di ambiente del processore di comandi. Per specificare un ambiente diverso per un processo figlio, creare un nuovo blocco di ambiente e passarvi un puntatore come parametro alla funzione CreateProcess.

Il processore di comandi fornisce il set comando per visualizzare il relativo blocco di ambiente o per creare nuove variabili di ambiente. È anche possibile visualizzare o modificare le variabili di ambiente selezionando System nel pannello di controllo , selezionando Impostazioni di sistema avanzatee facendo clic su Variabili di ambiente .

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

Var1=Value1\0
Var2=Value2\0
Var3=Value3\0
...
valore=VarN\0\0

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

La funzioneGetEnvironmentStringsrestituisce un puntatore al blocco di ambiente del processo chiamante. Questo deve essere considerato come un blocco di sola lettura; non modificarlo direttamente. Usare invece la funzioneSetEnvironmentVariableper 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 le variabili di ambiente di sistema a livello di codice, aggiungerle alla chiave del Registro di sistema HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment, quindi trasmettere un messaggio di WM_SETTINGCHANGE con lParam impostato sulla stringa "Environment". 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 funzioneGetEnvironmentVariabledetermina 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 funzioneCreateEnvironmentBlock.

Per espandere le stringhe di variabili di ambiente, usare la funzioneExpandEnvironmentStrings.

modifica delle variabili di ambiente

variabili di ambiente utente