|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: NSIS - все вопросы :. часть 2. |
|
.: NSIS - все вопросы :. часть 2.
|
Ветеран Сообщения: 1216 |
![]() Данная тема предназначена для обсуждения вопросов, связанных с инсталлятором Nullsoft Scriptable Install System, или просто NSIS. Сайт приложения. Описание: Текущая версия: NSIS 3.05 от 15 декабря 2019 года Скачать | Архив сборок версии Первая часть этой темы Скачать первую часть этой темы одним архивом ВНИМАНИЕ! прежде, чем задать вопрос, почитайте, где Вы найдете ответы на большинство вопросов: Справочник по NSIS - создан силами нашего сообщества. Руководство пользователя. Перевод – Поляков А.В, зеркало Документация Утилиты разработчика Расширение функциональности Примеры скриптов на нашем форуме Скрипт NSIS для перепаковки AIMP2+Сборки Тема для Notepad++(пример парсинга XML) Достоинства Ещё немного полезной информации: |
|
------- Отправлено: 12:02, 09-12-2012 |
![]() Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать динозавра, я, конечно, могу ошибаться, т.к. пару лет кодинга вообще не касался, но начиная читать код сразу меня остановил вот этот кусок:
${If} ${RunningX64} SetRegView 64 WriteRegDWORD HKEY_LOCAL_MACHINE "SOFTWARE\WOW6432Node\Adobe\Adobe Acrobat\DC\Activation" "IsAMTEnforced" 0x1 ${Else} WriteRegDWORD HKEY_LOCAL_MACHINE "SOFTWARE\Adobe\Adobe Acrobat\DC\Activation" "IsAMTEnforced" 0x1 ${EndIf} SetRegView как раз нужна для того, чтобы скрипт сам определял, в какую ветку будет записывать данные, таким образом можно избавиться от лишних строк в коде. либо так (без SetRegView): ${If} ${RunningX64} WriteRegDWORD HKEY_LOCAL_MACHINE "SOFTWARE\WOW6432Node\Adobe\Adobe Acrobat\DC\Activation" "IsAMTEnforced" 0x1 ${Else} WriteRegDWORD HKEY_LOCAL_MACHINE "SOFTWARE\Adobe\Adobe Acrobat\DC\Activation" "IsAMTEnforced" 0x1 ${EndIf} ${If} ${RunningX64} SetRegView 32 ; переключаем на запись в WOW6432Node раздел ${EndIf} WriteRegDWORD HKEY_LOCAL_MACHINE "SOFTWARE\Adobe\Adobe Acrobat\DC\Activation" "IsAMTEnforced" 0x1 Вообще, если нет надобности постоянно писать в разные разделы, то лучше бы при запуске определиться с командой SetRegView...Так вы сами себя избавите в дальнейшем как минимум от лишних конструкций с ${If} |
------- Отправлено: 19:08, 18-09-2019 | #2311 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 52
|
Профиль | Отправить PM | Цитировать Цитата:
Цитата:
Я тогда (очень давно) строго воспользовался вашей инструкцией и не отступал ни на децл http://forum.oszone.net/post-2541218-1741.html и дальнейшее после сообщения 1740 |
||
Последний раз редактировалось динозавра, 19-09-2019 в 16:25. Отправлено: 16:12, 19-09-2019 | #2312 |
![]() Пользователь Сообщения: 55
|
Профиль | Отправить PM | Цитировать Исходные данные: дан список
string1 string2 string3 string4 Как выбрать из этого списка рандомно, одну из строк и записать в переменную? StrCry "$1" string? |
Отправлено: 06:39, 30-09-2019 | #2313 |
![]() Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать f0r_ce, какой ответ вы хотите получить с таким вопросом?
Цитата f0r_ce:
|
|
------- Отправлено: 08:24, 30-09-2019 | #2314 |
![]() Пользователь Сообщения: 55
|
Профиль | Отправить PM | Цитировать K.A.V., список там же в скрипте
StrCry $1 string1 StrCry $2 string2 StrCry $3 string3 StrCry $4 string4 Далее выбор рандомно одну из них и заносим в переменную StrCry "$5" string(?) |
Отправлено: 10:18, 30-09-2019 | #2315 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать |
Отправлено: 10:21, 30-09-2019 | #2316 |
![]() Пользователь Сообщения: 55
|
Профиль | Отправить PM | Цитировать iglezz, StdUtils работает только с числами, строки не рандомит, NsRandom тоже.
|
Отправлено: 10:46, 30-09-2019 | #2317 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать f0r_ce, Понятное дело, самое интересное - получить строку относительно её номера.
Например так
Код грязноват ибо не заботится о перезаписи переменных Name "RandomStringTest" OutFile "RandomStringTest.exe" ShowInstDetails show AutoCloseWindow false RequestExecutionLevel user Page instfiles Section "" StrCpy $0 string0 StrCpy $1 string1 StrCpy $2 string2 StrCpy $3 string3 DetailPrint "input 0 = $0" DetailPrint "input 1 = $1" DetailPrint "input 2 = $2" DetailPrint "input 3 = $3" Push $0 Push $1 Push $2 Push $3 Push 4 ; (число строк) nsRandom::GetRandom Pop $R0 ; random 0 <= N < 4) DetailPrint "random = $R0" StrCpy $R1 3 loop: IntCmp $R1 0 0 exitloop 0 IntCmp $R0 $R1 0 +2 +2 Exch $5 Pop $4 IntOp $R1 $R1 - 1 Goto loop exitloop: DetailPrint "result = $5" DetailPrint " " SectionEnd Более корректный вариант, оформлен как функция: Скрытый текст
Name "RandomStringTesFunc" OutFile "RandomStringTesFunc.exe" ShowInstDetails show AutoCloseWindow false RequestExecutionLevel user Page instfiles Section "" StrCpy $R0 0 LoopS: Push string1 Push string2 Push string3 Push string4 Push string5 Push 5 Call GetRandomString Pop $0 DetailPrint "result = $0" IntOp $R0 $R0 + 1 InTCmp $R0 20 +2 0 Goto LoopS SectionEnd Function GetRandomString Exch $0 ; stack size input for nsRandom::GetRandom Push $1 ; stack size, counts from zero Push $2 ; temp Push $3 ; output string IntOp $1 $0 - 1 Push $0 nsRandom::GetRandom Pop $0 ; get random (0 <= $0 <= $1) loop: IntCmp $1 0 0 exitloop 0 Exch 4 IntCmp $0 $1 0 +3 +3 Pop $3 Goto +2 Pop $2 Exch Exch 2 Exch 3 IntOp $1 $1 - 1 Goto loop exitloop: Exch 3 Pop $0 Pop $2 Pop $1 Exch $3 FunctionEnd |
Последний раз редактировалось iglezz, 30-09-2019 в 18:24. Отправлено: 11:10, 30-09-2019 | #2318 |
Ветеран Сообщения: 2371
|
Профиль | Отправить PM | Цитировать Можно ещё проще генерить рандомное число номера переменной в коде:
Пример - до 20 : |
Отправлено: 18:34, 30-09-2019 | #2319 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать |
Отправлено: 11:19, 01-10-2019 | #2320 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 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 |
|