|
Компьютерный форум 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 |
Пользователь Сообщения: 91
|
Профиль | Отправить PM | Цитировать динозавра, для этого можно воспользоваться плагином nsisxml.
|
Отправлено: 13:54, 14-09-2019 | #2301 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 52
|
Профиль | Отправить PM | Цитировать Begin2Fly,
Спасибо, но я не нашел ни одного примера использования, когда в строке файла .xml , в которой есть число (неизвестное) нужно поменять одну любую цифру на случайную или как крайний вариант на заданную. Нужно видимо как то ко всему непонятному прикручивать генераторы случайных чисел, а я в этом плагине и прикрутке генераторов полный дуб. Короче для меня это не реально. Я по своей наивности думал, что есть какая то простая функция типа, если в строке найдена цифра к примеру 5, то заменить на, к примеру 6 или другое, если не найдена , то искать к примеру 6 и если найдена, то заменить на 7 или любое другое. Больше думаю не нужно, их там в файле аж 24. Это строка <Data key="TrialSerialNumber">745920021237495069785432(это чисо на каждом компе разное)</Data> в файле application.xml что с акробата C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\AMT Хотел состряпать фикс для акробат. Там нужно добавить в реестр, применить патч и поправить фай(сбросить окончание триала). Первое и второе сделал а править файл для меня темный лес. |
Отправлено: 14:52, 14-09-2019 | #2302 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать динозавра, вообще-то, xml-файл не имеет понятия «строка». Есть понятия разметка, тэг, атрибут, значение атрибута и т.п.
Цитата динозавра:
|
|
Отправлено: 15:29, 14-09-2019 | #2303 |
Пользователь Сообщения: 52
|
Профиль | Отправить PM | Цитировать Задача такая (машинный перевод) :
вам нужно будет отредактировать файл "application.xml", который находится в папке C: \ Program Files (x86) \ Adobe \ Acrobat DC \ Acrobat \ AMT измените любую цифру в поле <Data key = "TrialSerialNumber"> xxxxxxxxxxxx ' Оригинал текста тут http://w10.monkrus.ws/2019/08/adobe-...191220040.html Только вот эти файлы на разных компах отличаются датой установки, местом установки может еще чем. Отсюда и проблема, что нужно "изменить только одну любую цифру в поле <Data key = "TrialSerialNumber"> xxxxxxxxxxxx '", чтобы не изменился сам файл, ну, как бы так, если бы это было сделано вручную. |
Последний раз редактировалось динозавра, 14-09-2019 в 16:58. Отправлено: 16:44, 14-09-2019 | #2304 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать динозавра,
Вариант с изменением последней цифры Скрытый текст
;Using https://nsis.sourceforge.io/NsisXML_plug-in_(by_Wizou) Name "nsisXML-acrobat-example" OutFile "nsisXML-acrobat-example.exe" ShowInstDetails show AutoCloseWindow false SetOverwrite on RequestExecutionLevel user Page instfiles Section "" nsisXML::create nsisXML::load "$EXEDIR\application.xml" nsisXML::select '/Configuration/Other/Data[@key="TrialSerialNumber"]' nsisXML::getText DetailPrint "get: $3" ; Отрезаем в R1 всю строку без последней цифры StrCpy $R1 $3 -1 ; Отрезаем в R0 последнюю цифру StrCpy $R0 $3 "" -1 ; Увеличиваеи значение на 1 IntOp $R0 $R0 + 1 ; Проверяем: если R0 равно 10, то записываем в R0 = 0 StrCmp $R0 10 0 +2 StrCpy $R0 0 ; Подклеиваем к R1 новое значение R0 StrCpy $R1 "$R1$R0" DetailPrint "<: $3" DetailPrint ">: $R1" nsisXML::setText $R1 nsisXML::save "$EXEDIR\application-new.xml" SectionEnd |
Последний раз редактировалось iglezz, 14-09-2019 в 22:06. Отправлено: 20:57, 14-09-2019 | #2305 |
Пользователь Сообщения: 52
|
Профиль | Отправить PM | Цитировать iglezz,
Огромное спасибо. Это именно то, что я просил. Меняется одна цифра. Просто супер! |
Отправлено: 09:48, 18-09-2019 | #2306 |
Пользователь Сообщения: 52
|
Профиль | Отправить PM | Цитировать Все удалил по причине нарушения ОПК п.3.18
|
Последний раз редактировалось динозавра, 18-09-2019 в 18:56. Отправлено: 16:50, 18-09-2019 | #2307 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать динозавра, Вы бы с этим поосторожнее. Вы вообще в курсе существования ОПК п.3.18?
|
Отправлено: 17:51, 18-09-2019 | #2308 |
Пользователь Сообщения: 52
|
Профиль | Отправить PM | Цитировать Понял ошибку, лохонулся. Удалите, пожалуйста мое сообщение в кого есть права.
|
Отправлено: 17:58, 18-09-2019 | #2309 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать динозавра, Самостоятельно можно отредактировать сообщение.
По самому коду:
Подобные многократно повторяющиеся конструкции поддерживать -- самому себе лишняя работа при дальнейших модификациях плюс прямая дорога к ошибкам. 1. Код языка записывается в регистр $0 в функции .onInit, а читается в секции. По пути $0 может многократно измениться 2. Если пользоваться такой конструкцией для установки языка сообщений, то лучше переписать код примерно так: Скрытый текст
Var RunParamVar Function .onInit ${GetParameters} $RunParamVar ClearErrors ${GetOptions} $RunParamVar "/S" $1 IfErrors skip_check_param_S 0 SetSilent silent skip_check_param_S: IfSilent do_some_work 0 System::Call "kernel32::GetUserDefaultLCID() i.r0" IntOp $LANGUAGE $0 & 0xFFFF IntFmt $0 "%04X" $0 ${If} $0 = 0419 StrCpy $msgbox_ask_text "rus text" StrCpy $msgbox_completed_text "rus text" ${ElseIf} $0 = 0422 StrCpy $msgbox_ask_text "ukr text" StrCpy $msgbox_completed_text "ukr text" ${Else} StrCpy $msgbox_ask_text "english text" StrCpy $msgbox_completed_text "english text" ${EndIf} MessageBox MB_YESNO|MB_TOPMOST|MB_USERICON "$msgbox_ask_text" IDYES +2 IDNO 0 Abort do_some_work: Call MainInstructionsFunc IfSilent +2 0 MessageBox MB_OK|MB_TOPMOST|MB_USERICON " $msgbox_completed_text" FunctionEnd Function MainInstructionsFunc ..... рабочая часть скрипта ..... FunctionEnd Или использовать LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" LoadLanguageFile "${NSISDIR}\Contrib\Language files\Russian.nlf" LoadLanguageFile "${NSISDIR}\Contrib\Language files\Ukrainian.nlf" LangString VarName1 ${LANG_ENGLISH} "eng text" LangString VarName1 ${LANG_RUSSIAN} "rus text" LangString VarName1 ${LANG_UKRAINIAN} "ukr text" ....... Во избежание нестыковок лучше вычитать из реестра папку установки в переменную и использовать её в дальшейшем. Дополнительно можно запилить проверку на то, что это именно та папка, в которую надо писать файлы. 4. DetailPrint из моего примера можно было и удалить |
Последний раз редактировалось iglezz, 18-09-2019 в 19:03. Отправлено: 18:16, 18-09-2019 | #2310 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 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 |
|