Como posso definir uma variável de ambiente de usuário do Windows que tenha efeito para a sessão atual?

3

Estou tentando definir uma variável de ambiente de usuário do Windows e, em seguida, inicio um aplicativo por meio de um arquivo em lotes ou de um script. No entanto, a variável de ambiente não está definida para o valor apropriado até depois que o usuário efetua logoff e logon novamente. (Eu acho que uma descrição mais precisa seria que o novo valor não está disponível para o aplicativo até depois do próximo logon.)

Existe alguma maneira de definir uma variável no ambiente do usuário para que fique imediatamente disponível?

Estou fazendo isso porque a funcionalidade deste programa pode ser controlada por variáveis de ambiente, e os usuários precisarão de funcionalidades diferentes em momentos diferentes. Devido a restrições de licença, preciso configurá-lo dinamicamente, se possível.

Obrigado,

Graham

    
por Graham Powell 26.04.2010 / 23:20

3 respostas

1

A maneira mais simples de não definir a variável de ambiente e executar o aplicativo a partir de um arquivo em lote que define a variável de ambiente para essa sessão. Somente se a variável existir, ela não deverá entrar em vigor até o próximo logon

    
por 26.04.2010 / 23:32
0

Onde você está realmente definindo a variável? Se você estiver configurando nas propriedades do sistema, isso afetará apenas as novas sessões de shell e não as já existentes ... mas um logoff / logon não deve ser necessário, na verdade.

Sua melhor opção seria definir sua variável no mesmo arquivo de lote que inicia o aplicativo.

    
por 26.04.2010 / 23:33
0

Se você é o usuário é administrador da máquina, então você pode mesclar o valor que você precisa no registro. Em seguida, execute o arquivo em lotes.

Isso adicionará a variável de ambiente MYENVIRON com o valor MYVALUE

reg add "HKLM \ SYSTEM \ CurrentControlSet \ Control \ Gerente de sessão \ Ambiente" / v MYENVIRON / t REG_SZ / d MYVALUE / f

    
por 27.04.2010 / 00:15