|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :. |
|
[архив].: NSIS - все вопросы :.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
|
|
Отправлено: 23:35, 17-06-2006 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать так. если я все правильно понял, для каждого файла *.pat файл надо создавать отдельно?! О_о
Вот моя ошибка. Я постоянно директории сравнивал (на выходе файл получался, но чего-то не работало)) кусок скрипта выше это доля одного файла, а для X файлов его надо копировать n раз. так что ли?? тогда все крайне просто. Спасибо за помощь. Если будут ещё вопросы - вернусь в гости) *Ушел убивать клавиатуру. PS а можно патчу прикрутить авто установку в директорию по ключу в реестре? |
Отправлено: 13:38, 07-04-2011 | #1041 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата a--e:
я скрипты писал и на 7000 строк и нормально, дело тренировки, можно для этих дел макрос сварганить и 15 раз вызывать. Вот такой макрос для себя делал, пользуйтесь: Page Instfiles Name "Example" OutFile "Example.exe" ShowInstDetails show !define VPatchFile "!insertmacro VPatchFile" !macro VPatchFile PATCHDATA SOURCEFILE TEMPFILE VALUE Push $1 Push $2 Push $3 Push $4 Push `${SOURCEFILE}` Push `${TEMPFILE}` Pop $2 Pop $3 InitPluginsDir GetTempFileName `$1` $PLUGINSDIR File `/oname=$1` `${PATCHDATA}` vpatch::vpatchfile `$1` `$3` `$2` Pop $4 StrCpy $4 $4 2 StrCmp $4 "OK" +4 SetErrors DetailPrint "Vpatch: error" Goto +6 IntCmp ${VALUE} 1 0 +6 +6 IfFileExists `$2` 0 +4 Delete $3 Rename /REBOOTOK `$3` `$2` Delete $1 Pop $4 Pop $3 Pop $2 Pop $1 !macroend Section "Main" SetOutPath "$EXEDIR" File "D:\Nero_designer\Nero Burning ROM\nero.exe" ${VPatchFile} "Nero.pat" "$EXEDIR\Nero.exe" "Nero Express.exe" 1 SectionEnd Nero Express.exe - имя пропатченного файла, т.е сохраниться с указанным именем в одной директории оригинального файла 1- удалить оригинал, 0 - не удалять Условие: имя оригинала и патченного файла не должны совпадать |
|
------- Последний раз редактировалось kotkovets, 07-04-2011 в 14:16. Отправлено: 13:52, 07-04-2011 | #1042 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать Прошу помощи ещё раз. *.pat файлы получил. все идёт как надо. Но запнулся при написании скрипта
"Error in script "stdin" on line 9 -- aborting creation process" - вот что мне говорят ( пробовал менять имя pat файла в этой строке. Без результата. |
Отправлено: 15:28, 07-04-2011 | #1043 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать a--e,
скачайте на 92 стр. темы справочник, там есть ответы на ваши вопросы.. File /oname=$PLUGINSDIR\path.pat "Effects.vfs.pat" Означает взять Effects.vfs.pat и скопировать в папку $PLUGINSDIR с именем path.pat далее ясно почему ошибка... Delete "c:\Temp\{app}\data\NEW_Effects.vfs" и никогда не применяйте абсолютные пути в скриптах, кроме забора файлов в инсталлятор. Delete "$PLUGINSDIR\path.pat" Почитайте в справочнике про переменные окружения |
------- Последний раз редактировалось kotkovets, 07-04-2011 в 16:39. Отправлено: 16:15, 07-04-2011 | #1044 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать Спасибо. С этим разобрался.
Для теста попробовал пропатчить 1 файл. НО!! сам патч получился ровненько размера патченого файла (т.е. патч не содержит в себе информации для "дописывания" в оригинал, а прост осодержит модиф. файл).. Это лечится? Проблема за проблемой всплывают... |
Отправлено: 16:30, 07-04-2011 | #1045 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать a--e, достаточно сравнить 2 файла по контрольной сумме (MD5, к примеру) и если они одинаковые, значит файл не пропатчен, как узнать контрольные суммы - погуглите.
|
------- Отправлено: 16:36, 07-04-2011 | #1046 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать kotkovets,
Нет. Файл все же не патчится. Заменяется оригинальной версией (без патча даже). |
Отправлено: 16:44, 07-04-2011 | #1047 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать Всем привет !
Наткнулся на проблему с кодировкой NSIS при вызове команды nsExec::ExecToLog, при использовании русской Windows. ; Restart services nsExec::ExecToLog "cmd /u /c net stop SharedAccess" nsExec::ExecToLog "Test 31 Петя пошел гулять" DetailPrint "Stopping service... Русские буквы, тест 33333 " nsExec::ExecToLog "cmd /a /c net stop iphlpsvc" DetailPrint "Stopping service... Русские буквы, тест 22222 " nsExec::ExecToLog "net stop winmgmt" Если выполнить соответствующие команды вручную в cmd, то всё ок: То есть дело в том, какая кодировка настроена для вывода текста в окне лога установки через команду nsExec::ExecToLog, как её переключить подскажите пожалуйста ? P.S. как вы видите я экспериментировал с параметрами команды cmd: /a - вывод в ANSI /u - вывод в UNICODE результата это не дало никакого. В то же время команда DetailPrint выводит кириллицу нормально |
Последний раз редактировалось racner, 07-04-2011 в 21:26. Причина: поменял скриншот Отправлено: 21:09, 07-04-2011 | #1048 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата racner:
|
|
------- Отправлено: 22:27, 07-04-2011 | #1049 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Здравствуйте, подскажите куда копать:
1. Делаю установщик с введение пароля , создаю через nsDialogs первый лист, на нем строка ввода и кнопка далее, если пароль неверный сообщение, что неверно ввели : выход или повторить. Выход работает, а вот повтор немогу реализовать. Как в функции указать запуск установщика с начала? Пробовал указать на сколько команд вернуться назад, но при этом перестает показываться текстовое поле. Page custom dogovor_vvod dogovor_confirm !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\Modern UI 2\LicenseRU.txt" !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_LANGUAGE "Russian" ;-------------------------------- ;установка ;-------------------------------- Var dogovor Var textdogov Var numberdogov Function dogovor_vvod nsDialogs::Create 1018 !insertmacro MUI_HEADER_TEXT "Введите номер договора с ISP PalNet" "Если вы не являетесь пользователем сети PalNet, прервите установку и удалите данное приложение" Pop $dogovor ${NSD_CreateText} 30% 30% 90u 12u "" Pop $textdogov nsDialogs::Show FunctionEnd Function dogovor_confirm Loop: ${NSD_GetText} $textdogov $numberdogov ${if} $numberdogov != "nsis" MessageBox MB_ICONSTOP|MB_YESNO " $\r$\nНеверный номер договора! $\r$\nПопробовать снова?$\r$\n $\r$\n" IDYES Loop Goto End ${else} Goto Next ${endif} End: Quit Next: FunctionEnd 2. Как сделать чтобы пароль проверялся по первым 4 символам? Имеется ли какие нибудь спец символы вроде как * |
Отправлено: 07:34, 08-04-2011 | #1050 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Мультимедиа - 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 |
|