.: NSIS - все вопросы :. часть 2.
-
AlekseyPopovv
Re: .: NSIS - все вопросы :. часть 2.
Ставил Sleep 500, не идёт. При нажатии ок всё хорошо, создаётся и удаляется, при нажатии отмена первый раз всё как надо, если выбирать второй раз, то всё, скидывает на папку "Мои документы".
Буду думать...
Буду думать...
-
AlekseyPopovv
Re: .: NSIS - все вопросы :. часть 2.
Так я и не пойму.
Я убирал эти строки, результат тот же:
Код:
Я убирал эти строки, результат тот же:
Код:
Код: Выделить всё
${If} "$INSTDIR" != error
${NSD_SetText} $Text3 "$INSTDIR\${APP}"
${EndIf}-
K.A.V.
Re: .: NSIS - все вопросы :. часть 2.
Не используйте $INSTDIR как переменную для возвращаемых значений и будет вам счастье
У вас же есть $0-$9, $R0-R9...
Код:
У вас же есть $0-$9, $R0-R9...
Код:
Код: Выделить всё
Function Button
${If} $Radio == 1
Pop $Button
nsDialogs::SelectFolderDialog "Выберите папку для установки:" "$INSTDIR"
Pop $0
${If} $0 != error
${NSD_SetText} $Text3 "$0\${APP}"
StrCpy $INSTDIR "$0\${APP}"
${EndIf}
${EndIf}
FunctionEnd-
AlekseyPopovv
-
MKN
Re: .: NSIS - все вопросы :. часть 2.
AlekseyPopovv, Если под перетягиванием подразумевается перетягивание файла на ярлык/exe, то
Код:
Код:
Код: Выделить всё
!include "FileFunc.nsh"
; В теле секции/функции/макро:
${GetParameters} $0
; В $0 теперь содержатся все параметры, переданные лаунчеру
; Далее можно запустить программу с этими параметрами:
Exec 'program.exe $0'-
AlekseyPopovv
Re: .: NSIS - все вопросы :. часть 2.
Как сделать, что бы с ключом /S ни чего не устанавливалось? А с ключом /S /I то что мне нужно. И ключ /D=путь не работает.
Код:
Код:
Код: Выделить всё
${If} ${Silent}
ClearErrors
${GetOptions} "$CMDLINE" "/I" $R0
${IfNot} ${Errors}
StrCpy $INSTDIR "$PROGRAMFILES\${APP}"
SetOutPath "$INSTDIR"
File /r "${APPDIR}\${APP}\*"
Quit
${EndIf}
${EndIf}-
iglezz
Re: .: NSIS - все вопросы :. часть 2.
Iska, Это в качестве домашнего задания 
Если перетаскиваемый на лаунчер файл имеет в полном пути пробелы, то Проводник (и не только) обрамляет его в кавычки. NSIS эти кавычки не трогает, поэтому строку параметров можно передать в исходном виде.
А если понадобится несколько указанных в параметрах файлов передать в программу по одному, то тогда понадобится немного подумать над алгоритмом разбора и реализовать его. Или поискать готовый...

Если перетаскиваемый на лаунчер файл имеет в полном пути пробелы, то Проводник (и не только) обрамляет его в кавычки. NSIS эти кавычки не трогает, поэтому строку параметров можно передать в исходном виде.
А если понадобится несколько указанных в параметрах файлов передать в программу по одному, то тогда понадобится немного подумать над алгоритмом разбора и реализовать его. Или поискать готовый...
-
AlekseyPopovv
Re: .: NSIS - все вопросы :. часть 2.
Цитата iglezz:
то Проводник (и не только)
Так у нас же не Проводник, у нас NSIS. И речь про единственный параметр.
Exec — это в NSIS обёртка над ShellExecute()? Тут:
то Проводник (и не только)
.: NSIS - все вопросы :. часть 2.
Так у нас же не Проводник, у нас NSIS. И речь про единственный параметр.
Exec — это в NSIS обёртка над ShellExecute()? Тут:
Reference/Exec - NSIS
этого нет, но про кавычки — кое-что есть.-
K.A.V.
Re: .: NSIS - все вопросы :. часть 2.
Цитата Iska:
Так у нас же не Проводник, у нас NSIS. И речь про единственный параметр.
Но процесс перетаскивания файла на nsis-лаунчер будет происходить при помощи файл-менеджера. Наиболее вероятно, что это будет Проводник.
Понимание необходимости обрамлять в кавычки имя запускаемой команды, по моему, уже должно быть, поэтому уточнил только момент с параметрами, т.к. иногда встречаются "особенности" у некоторых представителей двоичного мира (wsh, total commander)
Так у нас же не Проводник, у нас NSIS. И речь про единственный параметр.
.: NSIS - все вопросы :. часть 2.
Но процесс перетаскивания файла на nsis-лаунчер будет происходить при помощи файл-менеджера. Наиболее вероятно, что это будет Проводник.
Понимание необходимости обрамлять в кавычки имя запускаемой команды, по моему, уже должно быть, поэтому уточнил только момент с параметрами, т.к. иногда встречаются "особенности" у некоторых представителей двоичного мира (wsh, total commander)