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
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
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
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.
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