|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: NSIS - все вопросы :. часть 2. |
|
.: NSIS - все вопросы :. часть 2.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
Данная тема предназначена для обсуждения вопросов, связанных с инсталлятором Nullsoft Scriptable Install System, или просто NSIS. Сайт приложения. Описание: Текущая версия: NSIS 3.05 от 15 декабря 2019 года Скачать | Архив сборок версии Первая часть этой темы Скачать первую часть этой темы одним архивом ВНИМАНИЕ! прежде, чем задать вопрос, почитайте, где Вы найдете ответы на большинство вопросов: Справочник по NSIS - создан силами нашего сообщества. Руководство пользователя. Перевод – Поляков А.В, зеркало Документация Утилиты разработчика Расширение функциональности Примеры скриптов на нашем форуме Скрипт NSIS для перепаковки AIMP2+Сборки Тема для Notepad++(пример парсинга XML) Достоинства Ещё немного полезной информации: |
|
------- Отправлено: 12:02, 09-12-2012 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать K.A.V.,
И с твоим комплектом те же ошибки... Писец какой то... PS нашёл причину... если FileVerInfo.nsh лежит в одном каталоге со скриптом - ошибка. стОит его убрать - всё ОК... |
Последний раз редактировалось MKN, 09-04-2015 в 18:12. Отправлено: 18:02, 09-04-2015 | #1571 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1576
|
Профиль | Отправить PM | Цитировать Прошу помощи.
В скрипте для конструктора AkelPad я использую для запуска утилит команду вида: Я решил не применять hidcon.exe для скрытия консольных окон, а использовать nsExec::Exec. На Win 8.1 инсталлятор после замены стал вылетать с ошибкой. Исследуя логи определил, что прекращение работы инсталлятора происходит при обработке следующего куска скрипта: loop: ${Locate} "$WINDIR\WINSxS\" "/L=F /M=notepad.exe" "WINSxS" IfErrors loop 0 . . Function WINSxS System::Call "advapi32::GetUserName(t .r0, *i ${NSIS_MAX_STRLEN} r1) i.r2" nsExec::Exec 'takeown.exe /F "$R9"' nsExec::Exec 'icacls.exe "$R9" /grant $0:F' nsExec::Exec 'takeown.exe /F "$R8"' nsExec::Exec 'icacls.exe "$R8" /grant $0:F' ${GetSize} "$WINDIR\" "/M=notepad.exe /S=0K /G=0" $R0 $R2 $R3 ${GetSize} "$R8" "/M=notepad.exe /S=0K /G=0" $R1 $R2 $R3 ${If} $R0 == $R1 StrCpy $Path2 '$Path2,$R8' ${Else} StrCpy $Path3 '$R8' ${EndIf} Push $0 FunctionEnd В чем может быть проблема |
------- Отправлено: 23:55, 09-04-2015 | #1572 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата MKN:
Цитата ya158:
System::Call "advapi32::GetUserName(t .R4, *i ${NSIS_MAX_STRLEN} r1) i.r2" ${GetSize} "$WINDIR\" "/M=notepad.exe /S=0K /G=0" $R0 $R2 $R3 loop: ${Locate} "$WINDIR\WINSxS\" "/L=F /M=notepad.exe" "WINSxS" IfErrors loop 0 Function WINSxS nsExec::Exec 'takeown.exe /F "$R9"' pop $R1 nsExec::Exec 'icacls.exe "$R9" /grant $R4:F' pop $R1 nsExec::Exec 'takeown.exe /F "$R8"' pop $R1 nsExec::Exec 'icacls.exe "$R8" /grant $R4:F' pop $R1 ${GetSize} "$R8" "/M=notepad.exe /S=0K /G=0" $R1 $R2 $R3 ${If} $R0 == $R1 StrCpy $Path2 '$Path2,$R8' ${Else} StrCpy $Path3 '$R8' ${EndIf} Push $0 FunctionEnd |
||
------- Отправлено: 05:42, 10-04-2015 | #1573 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Цитата K.A.V.:
С FileVerInfo.nsh с определением версии файла всё нормально (но только с номером версии, всё остальное черт те что ! ) А MoreInfo plugin, с тем же файлом, по прежнему показывает только первый символ версии... |
|
Последний раз редактировалось MKN, 10-04-2015 в 11:26. Отправлено: 10:59, 10-04-2015 | #1574 |
Ветеран Сообщения: 1576
|
Профиль | Отправить PM | Цитировать K.A.V.,
Большое спасибо. По поводу грязного кода - полностью согласен, недоглядел. Буду оптимизировать. С nsis сталкиваюсь очень мало. Не могли бы Вы пояснить поподробнее следующее: Цитата K.A.V.:
|
|
------- Отправлено: 11:46, 10-04-2015 | #1575 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата MKN:
Цитата ya158:
Вы читали описание плагина, который используете? Если на примере, то представьте, что вы вышли в сад собирать яблоки с другом, ваш товарищ кидает вам сорванные яблоки, надеясь, что вы поймаете, а вы думаете "не хочу ловить, пусть на земле полежат" и все яблоки, которые кидает вам друг - падают на землю. Вот и тут так же, плагин вам данные передаёт - вы их не принимаете. Вообще, это спорный момент в NSIS (в NSIS вообще много разных "фишек" и багов), не всегда вы будете получать краш, если не будете принимать значения от плагинов, от чего это зависит - не могу сказать, т.к. прямо с программированием я не связан, возможно, получается какая-то каша со стеком из-за этого или ещё чего...Нужно всегда тестировать то, что пишите, особенно при использовании плагинов. Что касается "фишек" NSIS, то об одной я тут писал недавно, когда при использовании команды ReadINIStr (чтение значения параметра из INI файла) в callback функции Locate - функция просто завершается, не продолжая поиск файлов. |
||
------- Отправлено: 12:47, 10-04-2015 | #1576 |
Ветеран Сообщения: 1576
|
Профиль | Отправить PM | Цитировать Цитата K.A.V.:
Правильно ли я понял, что результат своей работы плагин помещает в стек и надо его оттуда "вынуть", чтобы не вызывать переполнения? Значит ли это, что после каждого вызова плагина требуется команда типа "pop $R1"? |
|
------- Отправлено: 17:58, 10-04-2015 | #1577 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата ya158:
Цитата ya158:
Цитата:
Цитата ya158:
Цитата ya158:
Цитата ya158:
Конкретно насчет плагина nsExec вы уже сами увидели, если не принимать значения после исполнения команды - получите краш |
||||||
------- Отправлено: 18:47, 10-04-2015 | #1578 |
Пользователь Сообщения: 136
|
Профиль | Отправить PM | Цитировать Уважаемые. Как через NSIS определить включен ли Тестовый режим ОС (testsigning) любой разрядности. Я делал через cmd\bcdedit - очень громоздко...
|
Отправлено: 15:28, 21-04-2015 | #1579 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Цитата Salmo:
|
|
Отправлено: 16:51, 21-04-2015 | #1580 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 2 | dimadr | Наборы обновлений для Windows XP/2003/Windows 7 | 267 | 14-02-2020 08:25 | |
[архив].: NSIS - все вопросы :. | kotkovets | Автоматическая установка приложений | 3387 | 09-12-2012 11:56 | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 1 | jameszero | Наборы обновлений для Windows XP/2003/Windows 7 | 1491 | 22-07-2011 22:42 | |
Выбор|модернизация процессора .:[все вопросы]:. Часть I | Myxa | Выбор отдельных компонентов компьютера и конфигурации в целом | 1845 | 01-01-2011 19:18 | |
Вопросы по создателю инсталляций NSIS | MaxDELETE | Программное обеспечение Windows | 14 | 04-07-2007 10:01 |
|