|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :. |
|
[архив].: NSIS - все вопросы :.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
|
|
Отправлено: 23:35, 17-06-2006 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать kotkovets
Спасибо за отклик! Цитата kotkovets:
Именно, чтобы пользователь указывал каталог для установки и нажимал "Далее". Если он указал его неправильно - должно всплыть сообщение о неправильном каталоге. А Вы мне привели пример выполнения функции проверки при "закрытии страницы с компонентами". При этом у Вас в примере путь проверяемого файла берётся из реестра или из папки Program Files. Про реестр я написал отдельно, не факт что ключ есть в рестре. А Program Files мне вообще никак тут не нужна. Игра у пользователя может быть установлена где угодно вообще. Именно поэтому мне необходимо, чтобы пользователь САМ указывал папку для установки и нажимал "Далее". И после этого шла бы проверка. Ничего другое мне не подходит. Цитата kotkovets:
____________________________________________ Имеется к Вам предложение. Наш проект высочайшей технической сложности. Это обширное дополнение для игры. Требует высококачественного инсталлятора. Основы я знаю, проблемы лишь вот с такими доп.функциями, как проверки. Мы уже много лет занимаемся выпуском комплексных патчей и у нас тысячи пользователей, ждущих релиза. Дабы не заниматься рекламой - умышленно не называю имя проекта. Для создания инсталляторов у нас был отдельный человек, который создавал прекрасные инсталлы на основе Ghost Installer. В этом году он отошёл от дел и инсталлер вынужден делать я. Как Вы понимаете, должно быть не хуже чем было. Не хуже ни по функционалу, ни по оформлению. Так вот, если вы понимаете что именно я хочу реализовать по поводу проверок, могу ли я рассчитывать на Вашу ПРЯМУЮ помощь? Т.е Вы, по возможности подготовите уже готовые коды для необходимых нам функций. Если Вы согласны поучаствовать напрямую в создании инсталлятора - мы могли бы связаться с вами по ICQ, я бы вам поведал об обширности проекта и всей серьёзности дела. Проект некоммерческий и денег, к сожалению, я вам предложить не могу. Но обещаю Вам персональную благодарность в списке авторов, а также по Вашему желанию указать ссылку на Ваш ресурс или какие-либо другие координаты. Вы также можете привлечь Ваших коллег по данному ремеслу. Будем рады сотрудничеству. Жду Вашего решения. |
||
Отправлено: 17:30, 21-11-2011 | #1911 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
|
|
------- Отправлено: 17:31, 21-11-2011 | #1912 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось MKN, 22-11-2011 в 09:02. Отправлено: 17:51, 21-11-2011 | #1913 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать kotkovets,
Немного изменил формат сообщения и все получилось Function .onInit MessageBox MB_YESNO|MB_ICONQUESTION "ВНИМАНИЕ!$\n\ $\nЕсли у вас открыты окна браузеров Internet Explorer, Mozilla Firefox, Opera, Chrome закройте их перед продолжением установки. \ $\nВ противном случае, они будут закрыты принудительно! \ $\nЭто избавит от конфликтов интеграции программы. \ $\n$\nПРОДОЛЖИТЬ ?" /SD IDYES IDYES continue IDNO close ; close: Abort continue: ; KillProcDLL::KillProc "opera.exe" Sleep 700 KillProcDLL::KillProc "firefox.exe" Sleep 700 KillProcDLL::KillProc "chrome.exe" Sleep 700 KillProcDLL::KillProc "IEXPLORE.EXE" Sleep 700 FunctionEnd Цитата MKN:
|
|
------- Последний раз редактировалось wolkow70, 22-11-2011 в 15:35. Отправлено: 18:12, 21-11-2011 | #1914 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата wolkow70:
Цитата MKN:
Цитата Aster:
Это основа! Коль Вы в справку просили не тыкать, но все же придется на счет команд: InstallDirRegKey Раз нужно так делаем так: !define MUI_PAGE_CUSTOMFUNCTION_LEAVE LEAVE_DIRECTORY !insertmacro MUI_PAGE_DIRECTORY --- Function LEAVE_DIRECTORY ;переносим код с функции LEAVE_COMPONENTS <-- и эту функцию и упраздняем. FunctionEnd Цитата Aster:
Сравниваем хэш оргинала и хэш файла, точно как, как проверку версии. Если ключ реестра не найден, то команда InstallDir "bla bla" - не нужна. Откроется страничка директории без выбранного пути. Цитата Aster:
Я в играх плохо разбираюсь --- wolkow70, методом упрощения, не обязательно указывать на второй индетификатор, он сам туда придет MessageBox MB_YESNO|MB_ICONQUESTION "ВНИМАНИЕ!$\n\ $\nЕсли у вас открыты окна браузеров Internet Explorer, Mozilla Firefox, Opera, Chrome закройте их перед продолжением установки. \ $\nВ противном случае, они будут закрыты принудительно! \ $\nЭто избавит от конфликтов интеграции программы. \ $\n$\nПРОДОЛЖИТЬ ?" /SD IDYES IDYES continue Abort continue: ;--- |
|||||
------- Последний раз редактировалось kotkovets, 21-11-2011 в 19:36. Отправлено: 18:32, 21-11-2011 | #1915 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Alexey_KF,
Я сам собираюсь делать сборку на пятую версию Eset. Вы бы изложили свои соображения по сборке. Может совместными усилиями что-нибудь сделаем. Для четверки я делал раньше так: !define PRODUCT_NAME "Eset Smart Security" !define PRODUCT_VERSION "4.2.71.3" !define pkgdir "D:\NSIS" !define MUI_WELCOMEFINISHPAGE_BITMAP "${pkgdir}\ESS32\Eset.bmp" ; MUI 1.67 compatible ------ !include "MUI.nsh" SetCompressor /SOLID lzma SetCompressorDictSize 32 !define MUI_ABORTWARNING !define MUI_ICON "${pkgdir}\ESS32\Eset.ico" ; MUI Settings !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH !insertmacro MUI_LANGUAGE "Russian" Name "${PRODUCT_NAME}" Caption "Установка ${PRODUCT_NAME} ${PRODUCT_VERSION}" OutFile ESSv4.exe VIProductVersion "4.2.71.3 " !define /date date "%H:%M %d %b, %Y" VIAddVersionKey /LANG=1049 "LegalCopyright" "Eset" VIAddVersionKey /LANG=1049 "Comments" "Built on ${date}" VIAddVersionKey /LANG=1049 "CompanyName" "wolkow70" VIAddVersionKey /LANG=1049 "FileVersion" "4.2.71.3 " VIAddVersionKey /LANG=1049 "FileDescription" "Eset Smart Security" SubCaption 3 " " !include IsUserAdmin.nsh !include FileFunc.nsh !insertmacro GetRoot !insertmacro DriveSpace Function .onInit System::Call 'kernel32::CreateMutexA(i 0, i 0, t "ESSSetup") i .r1 ?e' Pop $R0 StrCmp $R0 0 +3 MessageBox MB_OK|MB_ICONQUESTION|MB_TOPMOST "Установка Eset Smart Security уже запущена..." Abort ReadRegDWORD $0 HKLM SYSTEM\Setup SystemSetupInProgress IntCmp $0 1 0 +2 SetSilent silent ${GetRoot} "$WINDIR" $R0 ${DriveSpace} "$R0" "/D=F /S=M" $R1 IntCmp $R1 100 +3 0 +3 MessageBox MB_OK|MB_ICONEXCLAMATION|MB_TOPMOST "На системном диске должно быть более$\n100 мегабайт свободного места.$\nУстановка Eset Smart Security отменена!" Abort !insertmacro IsUserAdmin $R0 StrCmp $R0 1 +3 MessageBox MB_OK|MB_ICONEXCLAMATION|MB_TOPMOST "Для установки программы у пользователя$\nдолжны быть права администратора.$\nУстановка Eset Smart Security отменена!" Abort FunctionEnd Section "!${PRODUCT_NAME}" ESS SectionIn RO SetOutPath "$TEMP\ESSSetup" File /r "Distrib\*" ExecWait "msiexec.exe /i $\"$TEMP\ESSSetup\ess_nt32_rus.msi$\" /qn REBOOT=ReallySuppress" SetOutPath "$TEMP" RMDir /r "$TEMP\ESSSetup" SectionEnd LangString message ${LANG_ENGLISH} "Here is in English" LangString message ${LANG_RUSSIAN} "А тут по русски" LangString DESC_ESS ${LANG_RUSSIAN} "Будет установлен пакет защиты компьютера от вирусов и интернет-угроз ${PRODUCT_NAME} ${PRODUCT_VERSION}" !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${ESS} $(DESC_ESS) !insertmacro MUI_FUNCTION_DESCRIPTION_END |
------- Последний раз редактировалось wolkow70, 22-11-2011 в 17:52. Отправлено: 15:42, 22-11-2011 | #1916 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Обновился NSIS Dialog Designer до v 0.9.9 (http://coolsoft.altervista.org/en/nsisdialogdesigner)
Только у меня под XPx32 (другой ОС нет под рукой) - не работает. Запускается с ошибкой - Runtime error: и т.д. целая портянка. После закрытия окна с сообщением об ошибке, запускается без тулбара... У кого какие результаты с этой версией ? |
Отправлено: 17:00, 22-11-2011 | #1917 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Товарищи, подскажите есть ли какая-то ошибка в моем коде.
На x86 все нормально регистрируется. Юзеры пишут, что на x64 не функционирует контекстное меню. Section "Использовать расширенную оболочку XnView" XnViewShell SectionIn 1 2 SetOutPath "$INSTDIR" ; - подключить директорию установки ; ${If} ${RunningX64} ; открыть логическую конструкцию, и если запущена х64 SetOutPath "$INSTDIR\XnShellEx64" ; - подключить путь RegDLL "$INSTDIR\XnShellEx64\XnViewShellExt.dll" ; - зарегистрировать ${Else} ; - иначе, если не x64 SetOutPath "$INSTDIR\ShellEx" ; -подключить путь RegDLL "$INSTDIR\ShellEx\XnViewShellExt.dll" ; - зарегистрировать ${EndIf} ; - закрыть логическую конструкцию WriteRegStr HKCU "Software\XnView\ShellEx" "Language" "ru" SectionEnd |
------- Отправлено: 20:08, 22-11-2011 | #1918 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать wolkow70
XnViewShellExt.dll - файл должен быть именно для x64 иногда, встречается не часто, одна библиотека для разрядности систем. ${If} ${RunningX64} ; открыть логическую конструкцию, и если запущена х64 SetOutPath "$INSTDIR\XnShellEx64" ExecWait `regsvr32 /s "$INSTDIR\XnShellEx64\XnViewShellExt.dll"` $0 ;MessageBox MB_OK "код возврата: $0" IDOK ;если удачно, то $0 = 0, если $0 = 3 --> модуль не найден ${Else} RegDLL "$INSTDIR\ShellEx\XnViewShellExt.dll" ${EndIf} WriteRegStr HKCU "Software\XnView\ShellEx" "Language" "ru" --- Глянул... для оболочки в x64 нужен 64-разрядный XnViewShellExt.dll XnView Shell Extension ZIP 64bits |
------- Последний раз редактировалось kotkovets, 23-11-2011 в 00:30. Отправлено: 20:51, 22-11-2011 | #1919 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
|
|
------- Отправлено: 13:46, 23-11-2011 | #1920 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Мультимедиа - 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 |
|