GARANTIR DESCONTO

Fórum PATH Windows 2000 / XP #187785

10/10/2003

0

como atualizar o path do windows 2000 ou XP via Delphi ???

no 98 era so adicionar no autoexec.bat e no 2000???


Desde já,

Obrigado!


Spider

Spider

Responder

Posts

10/10/2003

Beppe

Use SetEnvironmentVariable(´PATH´, ´C:\´);

Ataliba


Responder

Gostei + 0

11/10/2003

Spider

Não funcionou ... tenho que fazer algo especial ????


Responder

Gostei + 0

11/10/2003

Beppe

Tá, descobri que isso só altera para o processo corrente. Então eu fiz duas funções, uma para o processo corrente, e a segunda para todo o sistema:

function AddEnvironUser(const Name, Value: String): Boolean;
const
  VarMax = 32766;
var
  Buffer: array[0..VarMax] of Char;
  Len: Integer;
begin
  if Value = ´´ then
  begin
    Result := SetEnvironmentVariable(Pointer(Name), nil);
    Exit;
  end;
  Result := False;
  Len := GetEnvironmentVariable(Pointer(Name), Buffer, Length(Buffer));
  if Len + Length(Value) >= VarMax then Exit;
  if Len <> 0 then
  begin
    Buffer[Len] := ´;´;
    Inc(Len);
  end;
  Move(Pointer(Value)^, Buffer[Len], Length(Value));
  Buffer[Len + Length(Value)] := 0;
  Result := SetEnvironmentVariable(Pointer(Name), Buffer);
end;

function AddEnvironSystem(const Name, Value: String): Boolean;
const
  Key = ´System\CurrentControlSet\Control\Session Manager\Environment´;
var
  Rst: Cardinal;
  Actual: String;
begin
  with TRegistry.Create do
  try
    RootKey := HKEY_LOCAL_MACHINE;
    if OpenKey(Key, True) then
    begin
      if Value <> ´´ then
      begin
        Actual := ReadString(Name);
        if Actual <> ´´ then Actual := Actual + ´;´;
        WriteString(Name, Actual + Value);
      end
      else
        DeleteKey(Name);
    end;
  finally
    Free;
  end;
  SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0, 0, 0, Rst);
  Result := True;
end;


Chame AddEnviron*(´Path´, ´X:´);
Use AddEnviron*(Variavel, ´´) para deletá-la.

Ataliba


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar