|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :. |
|
[архив].: NSIS - все вопросы :.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
|
|
Отправлено: 23:35, 17-06-2006 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата Ivn78:
Цитата wolkow70:
${If} ${FileExists} "$INSTDIR\RarExt.dll.0.tmp" ;!insertmacro MoveFile "$INSTDIR\RarExt.dll" "$INSTDIR\RarExt.dll.$2.tmp" ;тут выполняются условия, если есть файл - $INSTDIR\RarExt.dll.0.tmp ${Else} ;!insertmacro MoveFile "$INSTDIR\RarExt.dll" "$INSTDIR\RarExt.dll.0.tmp" ;тут выполняются условия, если нету файла - $INSTDIR\RarExt.dll.0.tmp ${EndIf} |
||
------- Отправлено: 15:18, 17-06-2012 | #2791 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
1. Если нет файла $INSTDIR\RarExt.dll.0.tmp, то файл $INSTDIR\RarExt.dll переименовывается в $INSTDIR\RarExt.dll.0.tmp Это в приведенной функции работает. 2. Если есть $INSTDIR\RarExt.dll.0.tmp, то он переименовывается в "$INSTDIR\RarExt.dll.$2.tmp", а файл "$INSTDIR\RarExt.dll" переименовывается в $INSTDIR\RarExt.dll.0.tmp Это не работает. Нумерация файла в $2 не меняется. |
|
------- Последний раз редактировалось wolkow70, 17-06-2012 в 16:46. Отправлено: 16:37, 17-06-2012 | #2792 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата wolkow70:
${If} ${FileExists} "$INSTDIR\RarExt.dll.0.tmp" StrCpy $2 0 FindFirst $0 `$1` "$INSTDIR\RarExt*" ${DoUntil} ${Errors} IntOp $2 $2 + 1 MessageBox MB_OK "$1" IDOK FindNext $0 `$1` ${LoopUntil} $1 == `` FindClose $0 MessageBox MB_OK "$2" IDOK ${EndIf} 1. Если есть RarExt.dll.0.tmp, то $2 уже будет равен одному. 2. Все последующие файлы с именем RarExt* будут увеличивать на единицу переменную $2 3. Если таких файлов будет больше двух, будет переименовываться последний найденный. --- или так все таки лучше вскидка на дальнейшее размышление... |
|
------- Последний раз редактировалось kotkovets, 17-06-2012 в 17:16. Отправлено: 17:08, 17-06-2012 | #2793 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
|
|
------- Отправлено: 17:51, 17-06-2012 | #2794 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать тренер
!include "MUI2.nsh" OutFile "resrt.exe" ShowInstDetails show !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_LANGUAGE Russian Section "" StrCpy $2 -1 FindFirst $0 `$1` "$EXEDIR\test*" ${DoUntil} ${Errors} StrCmp $1 "test.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 CopyFiles /silent "$EXEDIR\test.dll" "$EXEDIR\test_0.dll" ${Else} Intop $2 $2 + 1 CopyFiles /silent "$EXEDIR\test.dll" "$EXEDIR\test_$2.dll" ${EndIf} SectionEnd |
------- Последний раз редактировалось kotkovets, 17-06-2012 в 21:33. Причина: Intop $2 $2 + 1 Отправлено: 18:45, 17-06-2012 | #2795 |
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать kotkovets, вы ответите на мой вопрос?
|
Отправлено: 19:46, 17-06-2012 | #2796 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата Vincent7:
--- Сами то что сделали по вопросу - не вижу ничего... |
|
------- Отправлено: 20:11, 17-06-2012 | #2797 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
С WinRar вот как стоит задача: При удалении программы RarExt.dll переименовывается в RarExt.dll.0.tmp. При этом RarExt.dll.0.tmp и остается залоченной в оперативной памяти. Это позволяет продолжать работу с программой при обновлении или переустановке программы. Только после перезапуска оболочки полномочия переходят к новой делке. При этом, если в папке с программой уже есть файл с наименованием RarExt.dll.0.tmp, то при следующей деинсталляции RarExt.dll переименовывается в RarExt.dll.1.tmp и т.д. |
|
------- Отправлено: 20:44, 17-06-2012 | #2798 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата wolkow70:
|
|
------- Последний раз редактировалось kotkovets, 17-06-2012 в 21:39. Отправлено: 21:20, 17-06-2012 | #2799 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
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} Помещаю код в функцию: Function un.RarExt Push $2 Push $1 Push $0 ; 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} ; Pop $0 Pop $1 Pop $2 FunctionEnd Call un.RarExt Не работает. Точнее переименовывает в первый раз. А потом показывает integer -1. Кладу в папку тестер, запускаю, все срабатывает. Почему из функции не работает, не понятно. |
|
------- Отправлено: 12:03, 18-06-2012 | #2800 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Мультимедиа - 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 |
|