Como ler variável de ambiente

25/02/2016

1

Bom dia,

No meu sistema, tenho um método que lê uma variável de ambiente, porém ao ler a variável de ambiente o programa não executa o comando que quero, segue o código.

procedure inicio();
var
   PegaVar: string;
begin
    PegaVar:= GetEnvironmentVariable('DEBUG_INI');
     var1:=False;
     if PegaVar= 'TRUE' then
     begin
     var1:= true;
     Metodo();
     end;

end;                    
 


DEBUG_INI é minha variável de ambiente, se ela está com o valor "TRUE", deveria chamar o método, mas não está chamando. Alguém sabe o que pode impedir o código de ler essa variável corretamente?

OBS: Tentei com outras variáveis de ambiente e deu certo, apenas com essa que eu criei que não funciona
Responder

Post mais votado

25/02/2016

gabsmanolo, boa tarde.
Kra aqui funciono bl.

Nas propriedades do sistema 'edita' o nome da variável e verifica se não há espaço no inicio ou no final. Qualquer coisa tenta excluir e incluir novamente esta variável. Lembre-se que qualquer alteração em se tratando de variáveis de ambiente a máquina deverá ser reiniciada.
Responder

Mais Posts

25/02/2016

Raylan Zibel

Debugou? O valor de PegaVar é realmente 'TRUE'?
Responder

25/02/2016

Gabriel

Debugou? O valor de PegaVar é realmente 'TRUE'?


Sim, para as duas perguntas
Responder

25/02/2016

Gabriel

[img]http://arquivo.devmedia.com.br/forum/imagem/465319-20160225-131003.png[/img]
Responder

25/02/2016

Crist

Veja se funciona:


function GetEnvVarValue(const VarName: string): string;
var
BufSize: Integer;
begin
BufSize := GetEnvironmentVariable(
PChar(VarName), nil, 0);
if BufSize > 0 then
begin
SetLength(Result, BufSize - 1);
GetEnvironmentVariable(PChar(VarName),
PChar(Result), BufSize);
end
else
Result := '';
end;

Responder

26/02/2016

Gabriel

Qualquer coisa tenta excluir e incluir novamente esta variável. Lembre-se que qualquer alteração em se tratando de variáveis de ambiente a máquina deverá ser reiniciada.


Fiz exatamente isso e funcionou, obrigado pela ajuda pessoal!
Responder