Variáveis de ambiente
Cada processo tem um bloco de ambiente que contém um conjunto de variáveis de ambiente e seus valores. Há dois tipos de variáveis de ambiente: variáveis de ambiente do usuário (definidas para cada usuário) e variáveis de ambiente do sistema (definidas para todos).
Por padrão, um processo filho herda as variáveis de ambiente de seu processo pai. Os programas iniciados pelo processador de comando herdam as variáveis de ambiente do processador de comando. Para especificar um ambiente diferente para um processo filho, crie um novo bloco de ambiente e passe um ponteiro para ele como um parâmetro para a função CreateProcess .
O processador de comandos fornece o comando set para exibir seu bloco de ambiente ou para criar novas variáveis de ambiente. Você também pode exibir ou modificar as variáveis de ambiente selecionando Sistema no Painel de Controle, selecionando Configurações avançadas do sistema e clicando em Variáveis de Ambiente.
Cada bloco de ambiente contém as variáveis de ambiente no seguinte formato:
-
Var1=Value1\0
Var2=Value2\0
Var3=Value3\0
...
VarN=ValueN\0\0
O nome de uma variável de ambiente não pode incluir um sinal de igual (=).
A função GetEnvironmentStrings retorna um ponteiro para o bloco de ambiente do processo de chamada. Isso deve ser tratado como um bloco somente leitura; não modifique-o diretamente. Em vez disso, use a função SetEnvironmentVariable para alterar uma variável de ambiente. Quando terminar de usar o bloco de ambiente obtido de GetEnvironmentStrings, chame a função FreeEnvironmentStrings para liberar o bloco.
Chamar SetEnvironmentVariable não tem efeito sobre as variáveis de ambiente do sistema. Para adicionar ou modificar programaticamente variáveis de ambiente do sistema, adicione-as à chave do RegistroHKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment e, em seguida, transmita uma mensagem WM_SETTINGCHANGE com lParam definida como a cadeia de caracteres "Ambiente". Isso permite que aplicativos, como o shell, peguem suas atualizações.
O tamanho máximo de uma variável de ambiente definida pelo usuário é de 32.767 caracteres. Não há nenhuma limitação técnica no tamanho do bloco de ambiente. No entanto, há limites práticos dependendo do mecanismo usado para acessar o bloco. Por exemplo, um arquivo em lote não pode definir uma variável que seja maior que o comprimento máximo da linha de comando.
Windows Server 2003 e Windows XP: O tamanho máximo do bloco de ambiente para o processo é de 32.767 caracteres. A partir do Windows Vista e do Windows Server 2008, não há nenhuma limitação técnica no tamanho do bloco de ambiente.
A função GetEnvironmentVariable determina se uma variável especificada é definida no ambiente do processo de chamada e, nesse caso, qual é seu valor.
Para recuperar uma cópia do bloco de ambiente para um determinado usuário, use a função CreateEnvironmentBlock .
Para expandir cadeias de caracteres de variáveis de ambiente, use a função ExpandEnvironmentStrings .
Tópicos relacionados