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

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

Аватара для kotkovets

Ветеран


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

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


Цитата wolkow70:
Это мне понятно. Чую, что можно как-то сделать, чтобы в ручную не править. А с какой стороны
подобраться не дотягиваю »
Можно так
Код: Выделить весь код
Function PREINSTFILES ;это функция будет выполнена только в режиме генератора
 ${If} $GMODE = 1 ;режим генератора
        StrCpy `$R0` "$INSTDIR"
        ${WordReplace} $R0 ":\Program Files" "%programfiles%" "+1" `$R1`
        StrCmp `$R1` `$R0` +2
        StrCpy `$R1` `$R1` "" 1
        ${WordReplace} `$R1` ":\Windows" "%windir%" "+1" `$R0`
        StrCmp `$R0` `$R1` +2
        StrCpy `$R0` `$R0` "" 1
        ${WordFind} `$R0` "Application Data" "E+2*}" `$R1`
        StrCmp $R1 1 +2
        StrCpy `$R0` "%appdata%$R1"
        WriteINIStr "$INIFILE" "DIRECTORY" "ISTALLDIR" "$R0" ;создаем файл конфигурации
 ${EndIf}
FunctionEnd
Но здесь есть не доработка, если задать путь С:\Application Data\Soft, то подменится на %appdata%\Soft
В зависимости от SetShellVarContext current|all > %appdata% > возвращает путь к профилю текущего пользователя или всех пользователей.
Для других системных переменных подумайте, есть в папке Examples скрипт WordFunc.nsi, где можно потренироваться c строковыми функциями подставляя свои значения строк и настроек парсирования строк.

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:39, 09-07-2011 | #1328