Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1269
Благодарности: 1027

Профиль | Отправить PM | Цитировать


Цитата 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, разумеется, нужна эта директива
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:42, 11-09-2012 | #893