|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :. |
|
[архив].: NSIS - все вопросы :.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
|
|
Отправлено: 23:35, 17-06-2006 |
Новый участник Сообщения: 46
|
Профиль | Отправить PM | Цитировать А можно как-то редактировать значение параметра в xml файле?
|
Отправлено: 12:07, 18-06-2012 | #2801 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата wolkow70:
а текущая директория, где находится деинсталлятор, точнее откуда он запущен, процесс деинсталлятора "раздваивается", что бы удалить самого себя --- Ivn78, Можно, если представить, что это обычный текстовый файл. есть плагин, но довольный тяжелый в плане изучения/применения. http://nsis.sourceforge.net/XML_plug-in |
|
------- Последний раз редактировалось kotkovets, 18-06-2012 в 12:24. Отправлено: 12:17, 18-06-2012 | #2802 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
|
|
------- Отправлено: 13:01, 18-06-2012 | #2803 |
Новый участник Сообщения: 46
|
Профиль | Отправить PM | Цитировать kotkovets,
Цитата kotkovets:
нужно заменить значение Patch |
|
Отправлено: 13:01, 18-06-2012 | #2804 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата Ivn78:
${StrRep} Var _FindInFile ; В эту переменную поместим полный путь к файлу, в котором будем производить замену Var _LineReplace ; В эту переменную поместим строку, которую будем искать и заменять Var _LineToInsert ; В эту переменную поместим строку, НА которую мы будем заменять искомую строку Var _CurLineNumber ; В этой переменной храним номер обрабатываемой строки Var _CurLine ; В этой переменной храним строку, с которой в данный момент сверяем Var _LineNumbers ; В этой переменной храним количество строк в искомом файле Function ReplaceLinesInFile ; ${LineSum} "$_FindInFile" $_LineNumbers ; Подсчитываем количество строк strcpy $_CurLineNumber 0 startLineRead: intop $_CurLineNumber $_CurLineNumber + 1 IntCmp $_CurLineNumber $_LineNumbers 0 0 endFunc ; Если номер текущей строки больше количества строк в файле - поиск завершен ${LineRead} "$_FindInFile" "$_CurLineNumber" $_CurLine ; Читаем строку по номеру текущей строки ${WordFind} '$_CurLine' "$_LineReplace" "E+1{" $R0 ; Ищем в строке нужный текст StrCmp $R0 "1" startLineRead 0 ; Если в строке присутствует искомый текст, выполняем код ниже ${LineFind} "$_FindInFile" "" "" "Insert_Line" ; Вызываем функцию Insert_Line, которая произведёт замену goto startLineRead endFunc: ; FunctionEnd Function Insert_Line StrCmp $R8 "$_CurLineNumber" 0 push ${StrRep} $_CurLine "$_CurLine" "$_LineReplace" "$_LineToInsert" FileWrite $R4 "$_CurLine" StrCpy $0 SkipWrite push: Push $0 FunctionEnd StrCpy $_FindInFile '$INSTDIR\opera_install_log.xml' ; Заменяем строки в этом файле StrCpy $_LineReplace 'C:\Program Files\Opera' ; Ищем и заменяем ЭТУ строку StrCpy $_LineToInsert '$INSTDIR' ; На что будем заменять Call ReplaceLinesInFile |
|
------- Отправлено: 13:19, 18-06-2012 | #2805 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата Ivn78:
|
|
------- Отправлено: 14:14, 18-06-2012 | #2806 |
Новый участник Сообщения: 46
|
Профиль | Отправить PM | Цитировать kotkovets,
Цитата kotkovets:
http://forum.oszone.net/post-1936249.html#post1936249 |
|
Отправлено: 16:52, 18-06-2012 | #2807 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Ivn78:
|
|
------- Отправлено: 18:52, 18-06-2012 | #2808 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать kotkovets,
Весь день бился с проблемой - решилось постановкой ClearErrors перед началом кода. ClearErrors StrCpy $2 -1 FindFirst $0 `$1` "$INSTDIR\RarExt*" ${DoUntil} ${Errors} StrCmp $1 "RarExt.dll" +2 Intop $2 $2 + 1 DetailPrint "$2) $1" FindNext $0 `$1` ${LoopUntil} $1 == `` FindClose $0 MessageBox MB_OK "integer: $2" IDOK ${If} $2 == -1 Rename "$INSTDIR\RarExt.dll" "INSTDIR\RarExt.dll.0.tmp" ${Else} Intop $2 $2 + 1 Rename "$INSTDIR\RarExt.dll" "$INSTDIR\RarExt.dll.$2.tmp" ${EndIf} |
------- Последний раз редактировалось wolkow70, 18-06-2012 в 19:55. Отправлено: 19:30, 18-06-2012 | #2809 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата K.A.V.:
|
|
------- Отправлено: 19:48, 18-06-2012 | #2810 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Мультимедиа - WinAmp .:[ обсуждение всех версий ]:. | ssaram | Программное обеспечение Windows | 406 | 12-02-2022 19:45 | |
WinstyleMonitor .:[все вопросы]:. | Mr dUSHA | Проект WinStyle | 331 | 12-02-2014 13:15 | |
Delphi - Delphi .: [все вопросы] :. | Serega | Программирование и базы данных | 94 | 04-05-2013 18:45 | |
Доступ - Никак не удаляются файлы (AVI и все остальные форматы) .:[все вопросы]:. | Microsoft Windows 2000/XP | 105 | 30-06-2010 11:58 | ||
Вопросы по создателю инсталляций NSIS | MaxDELETE | Программное обеспечение Windows | 14 | 04-07-2007 10:01 |
|