.: NSIS - все вопросы :. часть 2.

Ответить
 • Просмотры: 41
Аватара пользователя
AlekseyPopovv

Re: .: NSIS - все вопросы :. часть 2.

Сообщение AlekseyPopovv »

Ставил Sleep 500, не идёт. При нажатии ок всё хорошо, создаётся и удаляется, при нажатии отмена первый раз всё как надо, если выбирать второй раз, то всё, скидывает на папку "Мои документы".

Буду думать...
Аватара пользователя
K.A.V.

Re: .: NSIS - все вопросы :. часть 2.

Сообщение K.A.V. »

Никак, это системный диалог.
Аватара пользователя
AlekseyPopovv

Re: .: NSIS - все вопросы :. часть 2.

Сообщение AlekseyPopovv »

Так я и не пойму.

Я убирал эти строки, результат тот же:



Код:

Код: Выделить всё

${If} "$INSTDIR" != error
      ${NSD_SetText} $Text3 "$INSTDIR\${APP}"
  ${EndIf}
Аватара пользователя
K.A.V.

Re: .: NSIS - все вопросы :. часть 2.

Сообщение K.A.V. »

Не используйте $INSTDIR как переменную для возвращаемых значений и будет вам счастье

У вас же есть $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

Re: .: NSIS - все вопросы :. часть 2.

Сообщение AlekseyPopovv »

Как поменять цвет нижней части инсталлятора/деинсталлятора?
Аватара пользователя
MKN

Re: .: NSIS - все вопросы :. часть 2.

Сообщение MKN »

AlekseyPopovv, Если под перетягиванием подразумевается перетягивание файла на ярлык/exe, то

Код:

Код: Выделить всё

!include "FileFunc.nsh"
; В теле секции/функции/макро:
${GetParameters} $0
; В $0 теперь содержатся все параметры, переданные лаунчеру
; Далее можно запустить программу с этими параметрами:
Exec 'program.exe $0'
Аватара пользователя
AlekseyPopovv

Re: .: NSIS - все вопросы :. часть 2.

Сообщение AlekseyPopovv »

Как сделать, что бы с ключом /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.

Сообщение iglezz »

Iska, Это в качестве домашнего задания Изображение



Если перетаскиваемый на лаунчер файл имеет в полном пути пробелы, то Проводник (и не только) обрамляет его в кавычки. NSIS эти кавычки не трогает, поэтому строку параметров можно передать в исходном виде.

А если понадобится несколько указанных в параметрах файлов передать в программу по одному, то тогда понадобится немного подумать над алгоритмом разбора и реализовать его. Или поискать готовый...
Аватара пользователя
AlekseyPopovv

Re: .: NSIS - все вопросы :. часть 2.

Сообщение AlekseyPopovv »

Цитата iglezz:



то Проводник (и не только)
.: NSIS - все вопросы :. часть 2.




Так у нас же не Проводник, у нас NSIS. И речь про единственный параметр.



Exec — это в NSIS обёртка над ShellExecute()? Тут:
Reference/Exec - NSIS
этого нет, но про кавычки — кое-что есть.
Аватара пользователя
K.A.V.

Re: .: NSIS - все вопросы :. часть 2.

Сообщение K.A.V. »

Цитата Iska:



Так у нас же не Проводник, у нас NSIS. И речь про единственный параметр.
.: NSIS - все вопросы :. часть 2.




Но процесс перетаскивания файла на nsis-лаунчер будет происходить при помощи файл-менеджера. Наиболее вероятно, что это будет Проводник.

Понимание необходимости обрамлять в кавычки имя запускаемой команды, по моему, уже должно быть, поэтому уточнил только момент с параметрами, т.к. иногда встречаются "особенности" у некоторых представителей двоичного мира (wsh, total commander)
Ответить

Вернуться в «Автоматическая установка приложений»