Ru-Board.club
← Вернуться в раздел «Программы»

» NSIS (Nullsoft Scriptable Install System)

Автор: MOO123
Дата сообщения: 02.05.2007 19:21
Garrett
Ну я с ним не разу не встречался, как код записать. Писать CopyFile и название папки или как?

Добавлено:
CopyFiles $INSTDIR\*.* $INSTDIR\backup
Пишу вот так, но он некопирует ничего, хотя в этой папке докуя файлов

Добавлено:
Сделал по другому спасибо
Автор: Sampron
Дата сообщения: 03.05.2007 19:24
Мда... Разработчики Light Alloy в инсталле много чего переделали, кого интересует выложил сюда: http://data.cod.ru/929725898
Автор: aermashov
Дата сообщения: 04.05.2007 13:49
Нужна помощь, нужно с помощью инсталлятора добавить несколько записей в реестр, но так чтобы эти записи хранились во внешнем файле, типа конфигурационного файла чтото... незнаю смог ли донести идею, если не понятно растолкую подробней...
Заранее спасибо...
Автор: Maks150988
Дата сообщения: 05.05.2007 18:25
Хммм... Я уже совсем обленился в NSIS. Нужна помощь. Как сделать отдельную страницу как в Инно Сетапе где показываются чекбоксы - ярлык в меню пуск, ярлык на рабочем столе, ярлык в быстром запуске. Желательно чтобы все это обходилось без ini файла.
Автор: Garrett
Дата сообщения: 05.05.2007 20:33
Maks150988
Отдельная страница - всегда ini-файл.
В твоем и подобных случаях следует использовать страницу выбора компонентов(Page components).

Добавлено:
aermashov
если не хочешь прописать это в скрипте, то есть еще 2 варианта:
- свои записи пишешь в тестовый файл, а скриптом его читаешь и скриптом его же заносишь;
- используешь обычные reg-файлы.
Автор: mikar
Дата сообщения: 06.05.2007 06:03
NSIS 2.27 [Release Notes]
Автор: aermashov
Дата сообщения: 07.05.2007 09:59
Garrett

Цитата:
если не хочешь прописать это в скрипте, то есть еще 2 варианта:
- свои записи пишешь в тестовый файл, а скриптом его читаешь и скриптом его же заносишь;
- используешь обычные reg-файлы.

Вот первый вариант самое то но нигде не смог найти примеров, если есть ссылочка на рабочий пример буду очень благодарен...
Автор: Garrett
Дата сообщения: 07.05.2007 10:28
aermashov
См. Appendix E: Useful Headers --> Text Functions Header
Автор: aermashov
Дата сообщения: 07.05.2007 13:28

Цитата:
Garrett
См. Appendix E: Useful Headers --> Text Functions Header

это то понятно, сразу в хелп, а пример использование, ктото вить пользовался наверное...!?
Автор: Garrett
Дата сообщения: 07.05.2007 14:08
aermashov
А почему бы самому не почитать хелп и не попробовать сделать?
Автор: aermashov
Дата сообщения: 07.05.2007 14:38

Цитата:
Garrett
А почему бы самому не почитать хелп и не попробовать сделать?

Я не настолько хорошо знаю NSIS чтобы с нуля написать то что мне надо, проще оттолкнуться от готового...
Суть какая, есть список параметров реестра:
Параметр1,
Параметр2,
Параметр3,
Параметр4,
Параметр5,
Параметр6.... и т.д.
и необходимо их занести в реестр, причем не все, а в зависимости от наличия файла в определенной директории:
если файл1 то в реестр записываются Параметры1 и 2
если файл2 то в реестр записываются Параметры1,2,3,4
если файл3 то в реестр записываются Параметры1,2,5,6 и т.д.

причем необходимо сделать так чтобы все эти параметры, имена файлов и варианты записей в реестр хранились во вне инсталлятора...

на том уровне владения NSIS на котором я нахожусь это немного сложновато, даже с хелпом...
может кто еще идейку подбросит как это можно реализовать...
Автор: aermashov
Дата сообщения: 10.05.2007 14:57
Еще один вопросик для гуру, есть ли в NSIS переменная определяющая букву системного диска, по аналогии с виндовой %systemdrive%....?
Автор: Garrett
Дата сообщения: 10.05.2007 15:57
aermashov
Если по-быстрому, в большинстве случаев можно присвоить переменной константу $WINDIR, затем вырезать первую букву.
Автор: IMPOMEZIA
Дата сообщения: 10.05.2007 16:45
aermashov
Можно сделать так:

Код:
ExpandEnvStrings $R0 "%systemdrive%"
Автор: Garrett
Дата сообщения: 10.05.2007 16:49
IMPOMEZIA
Молодец! А я прошляпил эту функцию.
Автор: aermashov
Дата сообщения: 11.05.2007 08:38
IMPOMEZIA

Цитата:
aermashov
Можно сделать так:
Код:
ExpandEnvStrings $R0 "%systemdrive%"

ага, огромное спасибо

можно ли в ini файле определить сколько параметров и какие входят в определенную секцию?
Возможно ли из инсталлятора изменить параметры файла подкачки, в реестре они находятся здесь:

Код: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"PagingFiles"=hex(7):43,00,3a,00,5c,00,70,00,61,00,67,00,65,00,66,00,69,00,6c,\
00,65,00,2e,00,73,00,79,00,73,00,20,00,31,00,30,00,32,00,34,00,20,00,31,00,\
30,00,32,00,34,00,00,00,00,00
Автор: Maks150988
Дата сообщения: 11.05.2007 21:49
aermashov, попробуй посмотреть это значение через редактор реестра и вызови диалог изменения параметра ключа. потом все это скопируй и вставь в скрипт. должно работать.
Автор: Angel_19
Дата сообщения: 17.05.2007 21:22
А можно разобрать готовый пакет для получения сценария?
Зашел в пакет установки ТоталКоммандером, есть там файл script.bin - он двоичный
Автор: xGMZx
Дата сообщения: 28.05.2007 09:39
есть строка:
ExecWait "$INSTDIR\upx.exe $PROGRAMFILES\XXX 1.2\* -9"

как сделать, чтобы UPX не проскакивал "XXX 1.2"?
Автор: Garrett
Дата сообщения: 28.05.2007 10:42
xGMZx
Пути с пробелами надо заключать в двойные кавычки.
Автор: xGMZx
Дата сообщения: 28.05.2007 11:38
напиши пример...
Автор: Stewie_Griffin
Дата сообщения: 30.05.2007 21:39
В общем проблемка такая:
распаковывается архив, запускаю файл execwaitом, файл запускается нормально, но пишет что не может найти ини файл настройки... а когда запускаю его вручную всё нормально работает... подскажите что это может быть и что сделать
Автор: Garrett
Дата сообщения: 30.05.2007 21:47
Stewie_Griffin
Из описания проблемы трудно понять о чем речь, но я предположу, что дело в текущей директории для запускаемой программы.
Не может найти ini-файл, так скопируй этот файл в ту директорию откуда запускается прога.
Автор: MaGoth
Дата сообщения: 30.05.2007 22:28
Подскажите плиз, можноли в Nsis реализовать большое окошко, со скрином ?
А также пока идет инсталляция проигрывать музыку. Если да, то как это сделать... Пасиб.
Автор: Garrett
Дата сообщения: 31.05.2007 01:36
xGMZx

Цитата:
напиши пример...

ExecWait "$\"$INSTDIR\upx.exe$\" $\"$PROGRAMFILES\XXX 1.2\*$\" -9"
или
ExecWait '"$INSTDIR\upx.exe" "$PROGRAMFILES\XXX 1.2\*" -9'
Автор: Stewie_Griffin
Дата сообщения: 31.05.2007 07:33
Garrett
В общем смысл такой: допустим есть у меня 2 файла - script.exe и script.ini
я создаю инсталятор, который извлекает эти файлы в $INSTDIR
потом запускаю файл script.exe командой ExecWait "$INSTDIR\script.exe"
script.exe запускается, но пишет что не найден файл script.ini
хотя после установки я вручную запускаю script.exe и всё работает.

и ещё один вопросик, если можна:
добавляю скрипт в автозагрузку WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Run" "script" "$INSTDIR\script.exe"
Какой командой делается его uninstall?
Автор: Garrett
Дата сообщения: 31.05.2007 07:59
Stewie_Griffin
Если мы запускаем с:\TestProg\myprog.exe - не означает, что мы находимся в с:\TestProg!!!
Во время инсталляции мы находимся скорее всего в каком-то Теmр'е.

Тебе надо сделать скриптом бат-файл след.содержания и запустить его

cd $INSTDIR
script.exe

здесь $INSTDIR надо будет заменить на папку, которую выбрал пользователь.

------------
В "Software\Microsoft\Windows\CurrentVersion\Run" ничего совать не надо.
Автор: xGMZx
Дата сообщения: 31.05.2007 14:48
hm... не работает. он всеравно проходит мимо...
Автор: Garrett
Дата сообщения: 31.05.2007 23:11
xGMZx
А так ?
ExecWait '"$INSTDIR\upx.exe" "$PROGRAMFILES\XXX 1.2\*" -9'
(в самом начале, после "ExecWait " сначала кавычка потом двойная кавычка, а не наоборот)

Автор: Sampron
Дата сообщения: 01.06.2007 18:51
Подскажите как можно сделать на странице компонентов если ни один компонент не выбран то чтоб появилось сообщение о том что ни один компонент не выбран?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364

Предыдущая тема: The Bat!


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.