Se você definir uma variável de ambiente com o comando SET
em um interpretador de comandos, ela será aplicada ali mesmo no ambiente desse processo. Sem reinicialização, sem logoff e on - nada mais necessário.
As variáveis de ambiente que são mantidas no registro não são, de fato, variáveis de ambiente. Eles são um modelo . Cooperar programas lidos a partir do modelo e criar / modificar seus próprios ambientes reais a partir dele. Eles sabem quando o modelo muda porque há uma mensagem do Windows que é transmitida para todas as janelas de nível superior para dizer que isso aconteceu. Você precisa transmitir essa mensagem. Todos os programas cooperativos, incluindo o Windows Explorer, irão reler o modelo e ajustar seus ambientes, que serão herdados por quaisquer novos processos que eles gerarem a partir daquele momento em diante.