PATH Windows 2000 / XP
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!
no 98 era so adicionar no autoexec.bat e no 2000???
Desde já,
Obrigado!
Spider
Curtidas 0
Respostas
Beppe
10/10/2003
Use SetEnvironmentVariable(´PATH´, ´C:\´);
Ataliba
Ataliba
GOSTEI 0
Spider
10/10/2003
Não funcionou ... tenho que fazer algo especial ????
GOSTEI 0
Beppe
10/10/2003
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:
Chame AddEnviron*(´Path´, ´X:´);
Use AddEnviron*(Variavel, ´´) para deletá-la.
Ataliba
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
GOSTEI 0