|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :. |
|
[архив].: NSIS - все вопросы :.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
|
|
Отправлено: 23:35, 17-06-2006 |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать sawe, Установил вашу версию сборки Resource Hacker'а, установщик малось наглючило от плагина скина. После завершения процесса установки вывело пустое окно инсталляции без какой либо инфы, с еррором скина. Закрывал инсталлер через убиение процесса в диспетчере задач.
Собственно вопрос, чем вам не угодил стандартный скин Нсис?! |
Отправлено: 21:53, 18-09-2011 | #1651 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 89
|
Профиль | Отправить PM | Цитировать Цитата MaGoth:
|
|
Отправлено: 23:02, 18-09-2011 | #1652 |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать Народ, встрял с одной проблемой, и не могу ее разрешить.
Есть задача: при установке определить существует ли один из определенных файлов (этих файлов может быть много) в каталоге назначения, и если файл например А1. есть, то осуществить определенное дествие, если файла А1. нет, то проверить существует ли файл Б1, и т.д, как и в случае с файлом А1. Т.е. в зависимости от наличия того или иного файла выполнить определенное действие. Перепробовал кучу разных решений, ни одно толком не работает. Сейчас нашел одно, но при этом копируется сразу все, а не в зависимости от условия. Вот пример этого кода: [...] ;------------------------------------------------------------------------------- Section one [...] IfFileExists "$G2ChPath\Speech_Wegelagerer_english.vdf" 0 Done Call A1 IfFileExists "$G2ChPath\Data\Speech_Wegelagerer_deutsch.vdf" 0 Done Call B1 Done: SectionEnd ;------------------------------------------------------------------------------- Section -two SectionIn RO SetOverwrite on .NextP1: файлы для установки [...] SectionEnd ;------------------------------------------------------------------------------- Section -three SectionIn RO SetOverwrite on .NextA1: файлы для установки [...] SectionEnd ;------------------------------------------------------------------------------- Function A1 Goto .NextA1 FunctionEnd ;------------------------------------------------------------------------------- Function P1 Goto .NextP1 FunctionEnd ;------------------------------------------------------------------------------- [...] Кто что об этом думает ?! |
Отправлено: 02:00, 22-09-2011 | #1653 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать MaGoth
Ты забыл о последовательности исполнения команд в NSIS, а это очень важно! Если, к примеру перейдем по каким-то причинам к глобальной метке .NextP1, то исполнение кода начнется с этой метки, дальше по скрипту, следовательно будет исполняться весь код начиная с метки .NextP1 Цитата MaGoth:
Далее в секции one, делаем определение файлов и в зависимости нахождения файла: копируем группу файлов - все делается последовательно! Section "one" IfFileExists "$G2ChPath\Speech_Wegelagerer_english.vdf" 0 NextA1 ;файлы для установки ;[...] NextA1: IfFileExists "$G2ChPath\Data\Speech_Wegelagerer_deutsch.vdf" 0 NextB1 ;файлы для установки ;[...] NextB1: ;--- SectionEnd Section "one" ${If} ${FileExists} "$G2ChPath\Speech_Wegelagerer_english.vdf" ;файлы для установки ;[...] ${ElseIf} ${FileExists} "$G2ChPath\Data\Speech_Wegelagerer_deutsch.vdf" ;файлы для установки ;[...] ${EndIf} SectionEnd Если нужно копировать несколько групп файлов (при нахождении указанных файлов) можно делать так: |
|
------- Отправлено: 12:07, 22-09-2011 | #1654 |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать kotkovets, Нет, это не прокатывает перепробовал разные варианты, вот пример:
Есть файл Ридми.тхт на диске, в зависимости от локализации в нем седьмая строка меняет значения: 1. Системные требования 1. Hardwarevoraussetzungen Name "Cls Test" OutFile "ClsTest.exe" ;------------------------------------------------------------------------------- !include "TextFunc.nsh" ;------------------------------------------------------------------------------- !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_LANGUAGE "RUSSIAN" ;Russian ;------------------------------------------------------------------------------- !insertmacro MUI_RESERVEFILE_LANGDLL ;------------------------------------------------------------------------------- Var Lokalize ;------------------------------------------------------------------------------- Section ${LineRead} "C:\ReadMe.txt" "7" $Lokalize MessageBox MB_ICONINFORMATION|MB_OK $Lokalize IDOK ${If} $Lokalize == "1. Системные требования" MessageBox MB_ICONINFORMATION|MB_OK $Lokalize IDOK Call LokA ${ElseIf} $Lokalize == "1. Hardwarevoraussetzungen" MessageBox MB_ICONINFORMATION|MB_OK $Lokalize IDOK Call LokB ${EndIf} SectionEnd ;------------------------------------------------------------------------------- Function LokA Goto .NextAk FunctionEnd ;------------------------------------------------------------------------------- Function LokB Goto .NextPb FunctionEnd ;------------------------------------------------------------------------------- Section -"one1" .NextAk: MessageBox MB_ICONINFORMATION|MB_OK "Русификация" IDOK SectionEnd ;------------------------------------------------------------------------------- Section -"one2" .NextPb: MessageBox MB_ICONINFORMATION|MB_OK "Немка" IDOK SectionEnd Причем, не зависимо от того как реализованы последние две секции, первый пример выше, а второй так: Выводятся сообщения обеих команд, тоже самое и с определением файлов, если файл есть, или его нет, выполняются оба условия. Это ппц какой-то. |
Отправлено: 14:11, 22-09-2011 | #1655 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата MaGoth:
Цитата MaGoth:
секции всегда будут срабатывать, это очевидно! Во что за извращения с глобальными метками в функции с переходом в секции?????????? Пиши сразу код в вызываемой в функции, или под конструкцией. И ты забыл очевидное, про непечатываемые символы(мессага их не показывает) - переходы на новую строку и т.д По этому и логика твоя и не работала, а если бы логика работала и прыжок был на метку .NextAk:, то секции one1 и one2 выполнялись в любом случае. Пример на логике И-ИЛИ который прекрасно работает Section "" ClearErrors ${LineRead} "C:\Files.txt" "1" $Lokalize ${Unless} ${Errors} ${If} `$Lokalize` == "1. Системные требования$\r$\n" ${OrIf} `$Lokalize` == "1. Системные требования$\n" ${OrIf} `$Lokalize` == "1. Системные требования" Call LokA ${EndIf} ${If} `$Lokalize` == "1. Hardwarevoraussetzungen$\r$\n" ${OrIf} `$Lokalize` == "1. Hardwarevoraussetzungen$\n" ${OrIf} `$Lokalize` == "1. Hardwarevoraussetzungen" Call LokB ${EndIf} ${Else} MessageBox MB_ICONINFORMATION|MB_OK "Файл не найден!" IDOK ${EndUnless} SectionEnd Function LokA MessageBox MB_ICONINFORMATION|MB_OK $Lokalize IDOK FunctionEnd Function LokB MessageBox MB_ICONINFORMATION|MB_OK $Lokalize IDOK FunctionEnd |
||
------- Последний раз редактировалось kotkovets, 22-09-2011 в 16:06. Причина: правка кода если файл Files.txt не найден Отправлено: 15:41, 22-09-2011 | #1656 |
Пользователь Сообщения: 129
|
Профиль | Отправить PM | Цитировать не могу найти плагины для расаковки 7z и arc архивов, можете подсказать или отправить по пм ?
|
Отправлено: 11:13, 24-09-2011 | #1657 |
Пользователь Сообщения: 129
|
Профиль | Отправить PM | Цитировать kotkovets, спасибо
|
Отправлено: 13:16, 24-09-2011 | #1658 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать vahe-91,
для аrc во вложении |
------- Отправлено: 13:20, 24-09-2011 | #1659 |
Пользователь Сообщения: 89
|
Профиль | Отправить PM | Цитировать Поигрался с CallGetUserSID и обнаружил интересные положительные свойства этого макроса, ещё раз спасибо!
|
Отправлено: 16:06, 24-09-2011 | #1660 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Мультимедиа - 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 |
|