==========================
1、获取环境变量function ExpandEnvironment(const strValue: string): string;
var
  chrResult: array[0..1023] of Char;
  wrdReturn: DWORD;
begin
  wrdReturn := ExpandEnvironmentStrings(PChar(strValue), chrResult, 1024);
  if wrdReturn = 0 then
    Result := strValue
  else
  begin
    Result := Trim(chrResult);
  end;
end;{如下,获得在Windows 下临时目录}
procedure TForm1.Button1Click(Sender: TObject);
begin
  Caption:= ExpandEnvironment('%Temp%');
end;
===========================
2、取得、设置路径(只在本程序内部有效,就是自己的程序里才可以调用)procedure TForm1.Button5Click(Sender: TObject);
var
    path_name,path,add_path:pchar;
begin
    path_name:='path';
    add_path :=';d:\temp';
    getmem(path,255);
    try
        GetEnvironmentVariable(path_name,path,255);
        SetEnvironmentVariable(path_name,strcat(path,add_path));
    finally
        freemem(path);
    end;
end;
===========================
3、获取环境变量设置{获取环境变量设置}
procedure TForm1.Button1Click(Sender: TObject);
var
  DosEnv: PChar;
begin
  Memo1.Lines.Clear;
  DosEnv := GetEnvironmentStrings;
  while DosEnv^ <> #0 do
  begin
    Memo1.Lines.Add(StrPas(DosEnv));
    Inc(DosEnv, lStrLen(DosEnv) + 1);
  end;
  FreeEnvironmentStrings(DosEnv);
end;4 生效
procedure TForm1.Button1Click(Sender: TObject);
const
  v = 'Environment';
var
  MsgResult: DWORD;
begin
  SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, integer(pchar(v)), SMTO_ABORTIFHUNG, 5000, MsgResult);
end;