Цитата SatHan:
появилась необходимость к значению %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem добавить C:\Program Files\Progs
В идеале при установке должно получится так
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Progs
как это сделать через инно? »
|
SatHan, можно, конечно, и в секции Registry это сделать:
Код:
Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueType: expandsz; ValueName: Path; ValueData: {olddata};{app}; Flags: noerror
Но нужно еще проверять наличие вносимого значения, чтобы второй (и больше) раз не вносить одно и тоже, а также удалить значение при деинсталляции. Поэтому лучше свою процедуру накидать. Например:
читать дальше »
Код:
procedure ManagePathVariable(Variable: String; IsAddVariable: Boolean); //Variable - добавляемое значение; IsAddVariable - флаг добавить/удалить значение
var
Path: String;
begin
if RegQueryStringValue(HKLM, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'Path', Path) then
begin
if IsAddVariable then
if Pos(Lowercase(Variable), Lowercase(Path)) = 0 then
RegWriteExpandStringValue(HKLM, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'Path', Path + ';' + Variable);
if not IsAddVariable then
if Pos(Lowercase(Variable), Lowercase(Path)) > 0 then
begin
StringChangeEx(Path, ';' + Variable, '', True);
RegWriteExpandStringValue(HKLM, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'Path', Path);
end;
end;
end;
//пример вызова
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then ManagePathVariable('%ORACLE_HOME%', True);
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then ManagePathVariable('%ORACLE_HOME%', False);
end;
Цитата SatHan:
в секции [setup] нашёл ChangesEnvironment=true только мне это мало о чём говорит. »
|
SatHan, разумеется, нужна эта директива