Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Активные темы » Nullsoft Scriptable Install System | NSIS

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

Открыть новую тему     Написать ответ в эту тему

Nep



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

 
NSIS (Nullsoft Scriptable Install System)
Скриптовая система создания инсталляционных пакетов от авторов Winamp

Основные характеристики:
 
  • Размер дистрибутива около 1,5 МБ
  • Наличие в базовом пакете файлов с примерами и подробной справки
  • Чрезвычайная гибкость при создании инсталляций для своих программ
  • Открытый исходный код
  • Использование различных алгоритмов сжатия (ZLIB, BZIP2, LZMA)
  • Наличие различных плагинов
     
    Новейшая версия ветки 2.х: NSIS 2.51 (от 1 апреля 2016 г., статус ветки - Old Releases)
    Новейшая версия ветки 3.х: NSIS 3.10 (от 30 марта 2024 г.)  
     
     
    Ссылки:
    NSIS: страница загрузкирусификатор ветки 2.xx (без гарантии, что подходит!)2.513.10NSIS 3 Pre-releaseNSIS 2 Pre-releaseисходники (SVN)
     
    Дополнительно: [ плагины, примеры и полезности ] • [ форум разрабочиков ] • [ Wiki ]
     
    Редактор для скриптового языка NSIS: [ скачать ] • [ домашняя страница ]
     
    NSIS Unpacker
    7-zip начиная с версии 4.40 beta поддерживает распаковку из некоторых типов инсталляций.  
    Обратите внимание, что 7za не поддерживает распаковку.
     
    Полноценного русификатора пока нет, но кто хочет, может перевести сообщения в исходных текстах NSIS и скомпилировать всё заново – это единственный корректный вариант. Из файлов поддаётся корректному переводу только меню интегратора NSIS, поскольку там HTML, а остальные переводы – это в основном "русификаторы" с непредсказуемыми последствиями применения.
     
    64-х битное развитие идей NSIS. В разработке, аннотация разработчика nsisbi.
     
    Просьба к тем, кто будет править шапку, сначала сверяться с http://nsis.sourceforge.net/Main_Page и не выдавать желаемое за действительное.

  • Всего записей: 41940 | Зарегистр. 24-06-2001 | Отправлено: 14:21 06-10-2001 | Исправлено: DimmY, 11:10 31-03-2024
    sawerx



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ни когда не занимался украшательством, вот решил попробовать, взял на вики один такой пример и простенькую игру.
    Но вот, с доводкой появились проблемы.  
    Хотел оставить только окно выбора директории и хода установки, а при удалении только окно хода удаления. Выбивает ошибку сразу в первой же страничной функции FindWindow.
    И при удалении одна область не заполняется цветом.

    Код:
     
    ;Определения пользователя!
      !define VERSION 1.0.5 # Версия ${VERSION}
      !define APP_NAME "Beat Hazard" # Имя программы ${APP_NAME}
      !define PUBLISHER "Cold Beam Games" # Имя компании  ${PUBLISHER}
      !define REG_UNINSTALL "Software\Microsoft\Windows\CurrentVersion\Uninstall\Beat Hazard" # ${REG_UNINSTALL}
      !define /date FIXTIME "%d-%m-%Y_%H:%M:%S" # формат (13-07-2007_21:49:00) ${FIXTIME}
       
    ; ---- Подпись файла инсталлятора ---!
    VIProductVersion "1.0.5.0" # версия только в формате X.X.X.X
     VIAddVersionKey "FileVersion" "${VERSION}" # полная версия!
     VIAddVersionKey "ProductName" "Beat Hazard" # имя продукта!
     VIAddVersionKey "CompanyName" "Cold Beam Games" # имя компании!
     VIAddVersionKey "LegalTrademarks" "Cold Beam Games" # юридическая торговая марка!
     VIAddVersionKey "LegalCopyright" "CopyRights © 2008 Cold Beam Games" # юридический копирайт!
     VIAddVersionKey "FileDescription" "The Games Beat Hazard" # краткое описание!
    ; ---- Конец подписи файла инсталлятора ---!
     
      SetCompressor /FINAL /SOLID lzma # вид компресии!
      XPStyle on # стиль WinXP включён
      SetOverwrite try
      ShowInstDetails show
      ShowUninstDetails show
      AutoCloseWindow true
       
    !include MUI.nsh
    !include WinMessages.nsh
     
    !define HAVE_UPX
    !ifdef HAVE_UPX
       !packhdr temp.dat '"${NSISDIR}\UPX\upx.exe" -9 -q temp.dat'
    !endif
     
      Name "Beat Hazard"
      OutFile "Beat.Hazard_${VERSION}.exe"
       
      InstallDir "C:\Games\Beat Hazard"
      InstallDirRegKey HKLM "${REG_UNINSTALL}" "InstallLocation"
      RequestExecutionLevel user  
      DirText "$\r" # псевдо затирание!
     
    !define BITMAP_FILE "Res\fores.bmp" # фоновое!
    !define MUI_ICON "Res\BeatHazard.ico"
    !define MUI_UNICON "Res\BeatHazard.ico"
    !define MUI_WELCOMEFINISHPAGE_BITMAP "Res\for.bmp" # боковое!
    !define MUI_LICENSEPAGE_BGCOLOR 455545
    !define MUI_DIRECTORYPAGE_BGCOLOR 455545
    !define MUI_INSTFILESPAGE_COLORS "FFFFFF 455545"
    ;!define MUI_INSTFILESPAGE_PROGRESSBAR {"00FF00 455545"|colored|smooth}
    !define MUI_CUSTOMFUNCTION_GUIINIT myGUIInit
     
    !define LR_LOADFROMFILE     0x0010
    !define LR_CREATEDIBSECTION 0x2000
    !define IMAGE_BITMAP        0
     
    !define SS_BITMAP           0x0000000E
    !define WS_CHILD            0x40000000
    !define WS_VISIBLE          0x10000000
    !define HWND_TOP            0
    !define SWP_NOSIZE          0x0001
    !define SWP_NOMOVE          0x0002
     
    !define IDC_BITMAP          1500
    !define stRECT "(i, i, i, i) i"
     
     Var HBitmap
    ;     !define MUI_UI_HEADERIMAGE ".\modern_headed.exe"  
         !define MUI_INNERTEXT_LICENSE_TOP "$\r" # затирание!
         !define MUI_INNERTEXT_LICENSE_BOTTOM "$\r" # затирание!
         !define MUI_PAGE_CUSTOMFUNCTION_SHOW LicensePageShow
    !insertmacro MUI_PAGE_LICENSE "Res\License.txt"  
         !define MUI_TEXT_DIRECTORY_TITLE "Компания Cold Beam Games представляет вам игру Опасность Удара"  
         !define MUI_TEXT_DIRECTORY_SUBTITLE "Пожалуйста выберите папку для установки аркадной игры  $(^NameDA)."  
         !define MUI_PAGE_CUSTOMFUNCTION_SHOW DirectoryPageShow
    !insertmacro MUI_PAGE_DIRECTORY
         !define MUI_PAGE_CUSTOMFUNCTION_SHOW InstFilesPageShow
    !insertmacro MUI_PAGE_INSTFILES
         !define MUI_PAGE_CUSTOMFUNCTION_SHOW FinishPageShow
    !insertmacro MUI_PAGE_FINISH
     
         !define MUI_CUSTOMFUNCTION_UNGUIINIT un.myGuiInit
         !define MUI_UNPAGE_CUSTOMFUNCTION_SHOW insFilesPageShow
    !insertmacro MUI_UNPAGE_INSTFILES
    !insertmacro MUI_LANGUAGE Russian
     
        ;Уничтожить окно!
    !macro DestroyWindow HWND IDC
      GetDlgItem $R0 ${HWND} ${IDC}
      System::Call `user32::DestroyWindow(i R0)`
    !macroend
     
         ;Придать окну прозрачный фон!
    !macro SetTransparent HWND IDC
      GetDlgItem $R0 ${HWND} ${IDC}
      SetCtlColors $R0 0xFFFFFF transparent
    !macroend
     
        ;Обновление окна!
    !macro RefreshWindow HWND IDC
      GetDlgItem $R0 ${HWND} ${IDC}
      ShowWindow $R0 ${SW_HIDE}
      ShowWindow $R0 ${SW_SHOW}
    !macroend
     
    Function myGUIInit
    ;Извлечение BMP изображения!
      InitPluginsDir
      ReserveFile "${BITMAP_FILE}"
      File "/ONAME=$PLUGINSDIR\bg.bmp" "${BITMAP_FILE}"
    ; Получить размер окна!
      System::Call `*${stRECT} .R0`
      System::Call `user32::GetClientRect(i $HWNDPARENT, i R0)`
      System::Call `*$R0${stRECT} (, , .R1, .R2)`
      System::Free $R0
    ;Создать контроль над BMP изображением!
      System::Call `kernel32::GetModuleHandle(i 0) i.R3`
      System::Call `user32::CreateWindowEx(i 0, t "STATIC", t "", i ${SS_BITMAP}|${WS_CHILD}|${WS_VISIBLE}, i 0, i 0, i R1, i R2, i $HWNDPARENT, i ${IDC_BITMAP}, i R3, i 0) i.R1`
      System::Call `user32::SetWindowPos(i R1, i ${HWND_TOP}, i 0, i 0, i 0, i 0, i ${SWP_NOSIZE}|${SWP_NOMOVE})`
    ;Установка BMP изображения!
      System::Call `user32::LoadImage(i 0, t "$PLUGINSDIR\bg.bmp", i ${IMAGE_BITMAP}, i 0, i 0, i ${LR_CREATEDIBSECTION}|${LR_LOADFROMFILE}) i.s`
      Pop $HBitmap
      SendMessage $R1 ${STM_SETIMAGE} ${IMAGE_BITMAP} $HBitmap
    ;Устанавить прозрачный фон!
      !insertmacro SetTransparent $HWNDPARENT 3
      !insertmacro SetTransparent $HWNDPARENT 1
      !insertmacro SetTransparent $HWNDPARENT 2
      !insertmacro SetTransparent $HWNDPARENT 1034
      !insertmacro SetTransparent $HWNDPARENT 1035
      !insertmacro SetTransparent $HWNDPARENT 1036
      !insertmacro SetTransparent $HWNDPARENT 1037
      !insertmacro SetTransparent $HWNDPARENT 1038
      !insertmacro SetTransparent $HWNDPARENT 1039
      !insertmacro SetTransparent $HWNDPARENT 1040
      !insertmacro SetTransparent $HWNDPARENT 1044
    ;Удаление нежелательных областей контроля!
      !insertmacro DestroyWindow  $HWNDPARENT 1256
      !insertmacro DestroyWindow  $HWNDPARENT 1000
      !insertmacro DestroyWindow  $HWNDPARENT 1028
      !insertmacro DestroyWindow  $HWNDPARENT 1029
      !insertmacro DestroyWindow  $HWNDPARENT 1035
      !insertmacro DestroyWindow  $HWNDPARENT 1036
      !insertmacro DestroyWindow  $HWNDPARENT 1039
      !insertmacro DestroyWindow  $HWNDPARENT 1040
    FunctionEnd
    ;Обновить родительские контрольные окона, если у них есть прозрачный фон!
    Function RefreshParentControls
      !insertmacro RefreshWindow  $HWNDPARENT 1037
      !insertmacro RefreshWindow  $HWNDPARENT 1038
    FunctionEnd
        ;Для страницы лицензии!
    Function LicensePageShow
        ;Устанавить прозрачный фон!
        FindWindow $MUI_HWND "#32770" "" $HWNDPARENT
      SetCtlColors $MUI_HWND 0xFFFFFF transparent
      !insertmacro SetTransparent $MUI_HWND 1040
      !insertmacro SetTransparent $MUI_HWND 1000
      !insertmacro SetTransparent $MUI_HWND 1006
      !insertmacro SetTransparent $MUI_HWND 1034
      Call RefreshParentControls ;Обновление управления!
    FunctionEnd
     
        ;Для страницы деректории!
    Function DirectoryPageShow  
        ;Устанавить прозрачный фон.
        FindWindow $MUI_HWND "#32770" "" $HWNDPARENT
      SetCtlColors $MUI_HWND 0xFFFFFF transparent
      !insertmacro SetTransparent $MUI_HWND 1001
      !insertmacro SetTransparent $MUI_HWND 1024
      !insertmacro SetTransparent $MUI_HWND 1008
      !insertmacro SetTransparent $MUI_HWND 1023
      !insertmacro SetTransparent $MUI_HWND 1006
      !insertmacro SetTransparent $MUI_HWND 1020
      SendMessage $R0 ${WM_SETTEXT} 0 STR: # папка установки"
      Call RefreshParentControls ;Обновление управления!  
    FunctionEnd
        ;Для страницы хода выполнения!
    Function InstFilesPageShow
        ;Устанавить прозрачный фон!
        FindWindow $MUI_HWND "#32770" "" $HWNDPARENT
      SetCtlColors $MUI_HWND 0xFFFFFF transparent
      !insertmacro SetTransparent $MUI_HWND 1027
      !insertmacro SetTransparent $MUI_HWND 1000
      !insertmacro SetTransparent $MUI_HWND 1004
      !insertmacro SetTransparent $MUI_HWND 1006
      !insertmacro SetTransparent $MUI_HWND 1016
      !insertmacro SetTransparent $MUI_HWND 1029
      Call RefreshParentControls  ;Обновление управления!
    FunctionEnd
        ;Для конечной страницы!
    Function FinishPageShow
        ;Устанавить прозрачный фон!
      SetCtlColors $MUI_HWND 0xFFFFFF transparent
      !insertmacro SetTransparent $MUI_HWND 1200
      !insertmacro SetTransparent $MUI_HWND 1201
      !insertmacro SetTransparent $MUI_HWND 1202
      !insertmacro SetTransparent $MUI_HWND 1203
      !insertmacro SetTransparent $MUI_HWND 1204
      !insertmacro SetTransparent $MUI_HWND 1205
      !insertmacro SetTransparent $MUI_HWND 1206
    FunctionEnd
     
    Section
      SetOutPath $INSTDIR
      SetDateSave off
      File "Beat Hazard\BeatHazard.exe"
      File "Beat Hazard\Content.res"
      File "Beat Hazard\*.dll"
       
    ;Установка изображения для папки!
          WriteINIStr "$INSTDIR\Desktop.ini" ".ShellClassInfo" "IconFile" "$INSTDIR\BeatHazard.exe" # имя файла с иконкой!
          WriteINIStr "$INSTDIR\Desktop.ini" ".ShellClassInfo" "IconIndex" 0 # номер индекса иконки!
    SetFileAttributes "$INSTDIR\Desktop.ini" ARCHIVE|HIDDEN|SYSTEM # присвоить атрибут файлу!
    SetFileAttributes "$INSTDIR" ARCHIVE|SYSTEM # присвоить атрибут папке!
     
    ;Запись удоляемых строк!
      WriteRegStr HKLM "${REG_UNINSTALL}" "InstallLocation" $INSTDIR # путь установки!
      WriteRegStr HKLM "${REG_UNINSTALL}" "InstallDate" "${FIXTIME}" # время создания установки!
      WriteRegStr HKLM "${REG_UNINSTALL}" "DisplayIcon" "$INSTDIR\BeatHazard.exe"
      WriteRegStr HKLM "${REG_UNINSTALL}" "DisplayName" "$(^Name)"
      WriteRegStr HKLM "${REG_UNINSTALL}" "DisplayVersion" "${VERSION}"
      WriteRegStr HKLM "${REG_UNINSTALL}" "Publisher" "${PUBLISHER}"
      WriteRegStr HKLM "${REG_UNINSTALL}" "Comments" "Космическое аркадное сражение"
    WriteRegDWORD HKLM "${REG_UNINSTALL}" "NoModify" 1 # без изменения!
    WriteRegDWORD HKLM "${REG_UNINSTALL}" "NoRepair" 1 # без изменения!
      WriteRegStr HKLM "${REG_UNINSTALL}" "UninstallString" '"$INSTDIR\UinstallGame.exe"'
      WriteUninstaller "$INSTDIR\UinstallGame.exe" # создание деинстолятора!
    Sleep 400
     CreateShortCut "$DESKTOP\$(^Name).lnk" "$INSTDIR\BeatHazard.exe" "" "$INSTDIR\BeatHazard.exe" 0 "" "" "Космическое аркадное сражение"
    Sleep 400
    Sleep 400
    SectionEnd
    Function .onGUIEnd # уничтожить BMP изображение!
      System::Call `gdi32::DeleteObject(i s)` $HBitmap
    FunctionEnd
     
    Function un.myGUIInit
    MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Вы желаете удалить $(^Name) и все компоненты?" IDYES +2
      Abort # это сообщение заменяет окно подготовки удаления!
       
    ;Извлечение BMP изображения!
      InitPluginsDir
      ReserveFile `${BITMAP_FILE}`
      File `/ONAME=$PLUGINSDIR\bg.bmp` `${BITMAP_FILE}`
    ; Получить размер окна!
      System::Call `*${stRECT} .R0`
      System::Call `user32::GetClientRect(i $HWNDPARENT, i R0)`
      System::Call `*$R0${stRECT} (, , .R1, .R2)`
      System::Free $R0
    ;Создать контроль над BMP изображением!
      System::Call `kernel32::GetModuleHandle(i 0) i.R3`
      System::Call `user32::CreateWindowEx(i 0, t "STATIC", t "", i ${SS_BITMAP}|${WS_CHILD}|${WS_VISIBLE}, i 0, i 0, i R1, i R2, i $HWNDPARENT, i ${IDC_BITMAP}, i R3, i 0) i.R1`
      System::Call `user32::SetWindowPos(i R1, i ${HWND_TOP}, i 0, i 0, i 0, i 0, i ${SWP_NOSIZE}|${SWP_NOMOVE})`
    ;Установка BMP изображения!
      System::Call `user32::LoadImage(i 0, t "$PLUGINSDIR\bg.bmp", i ${IMAGE_BITMAP}, i 0, i 0, i ${LR_CREATEDIBSECTION}|${LR_LOADFROMFILE}) i.s`
      Pop $HBitmap
      SendMessage $R1 ${STM_SETIMAGE} ${IMAGE_BITMAP} $HBitmap
    ;Устанавить прозрачный фон!
      !insertmacro SetTransparent $HWNDPARENT 3
      !insertmacro SetTransparent $HWNDPARENT 1
      !insertmacro SetTransparent $HWNDPARENT 2
      !insertmacro SetTransparent $HWNDPARENT 1006
      !insertmacro SetTransparent $HWNDPARENT 1018
      !insertmacro SetTransparent $HWNDPARENT 1034
      !insertmacro SetTransparent $HWNDPARENT 1035
      !insertmacro SetTransparent $HWNDPARENT 1036
      !insertmacro SetTransparent $HWNDPARENT 1037
      !insertmacro SetTransparent $HWNDPARENT 1038
      !insertmacro SetTransparent $HWNDPARENT 1039
      !insertmacro SetTransparent $HWNDPARENT 1044
    ;Удаление нежелательных областей управления!
      !insertmacro DestroyWindow  $HWNDPARENT 1256
      !insertmacro DestroyWindow  $HWNDPARENT 1000
      !insertmacro DestroyWindow  $HWNDPARENT 1006
      !insertmacro DestroyWindow  $HWNDPARENT 1028
      !insertmacro DestroyWindow  $HWNDPARENT 1029
      !insertmacro DestroyWindow  $HWNDPARENT 1035
      !insertmacro DestroyWindow  $HWNDPARENT 1036
      !insertmacro DestroyWindow  $HWNDPARENT 1038
      !insertmacro DestroyWindow  $HWNDPARENT 1039
       
      !insertmacro RefreshWindow  $HWNDPARENT 1018
      !insertmacro RefreshWindow  $HWNDPARENT 1037
      !insertmacro RefreshWindow  $HWNDPARENT 1038
    FunctionEnd
     
    Section Uninstall # секция удаления!
      DeleteRegKey HKLM "${REG_UNINSTALL}"  
      Delete "$INSTDIR\UinstallGame.exe"
      Delete "$INSTDIR\BeatHazard.exe"
      Delete "$INSTDIR\Content.res"
      Delete "$INSTDIR\*.dll"
    RMDir /r "$INSTDIR"
      SetShellVarContext Current # для текущего пользователя!
      Delete "$DESKTOP\$(^Name).lnk"
    RMDir /r "$APPDATA\Beat Hazard"
    SectionEnd
     
    Function un.onGUIEnd # уничтожить BMP изображение!
      System::Call `gdi32::DeleteObject(i s)` $HBitmap
    FunctionEnd
     

    рисунок на 499x361px

    Всего записей: 61 | Зарегистр. 21-11-2010 | Отправлено: 02:14 11-12-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sawerx
     
    А по идее, тут же код выбора каталога устанавки не задан никак. Ни средствами MUI и ни через .onInit или код. Потому по идее всё должно лететь в произвольный каталог, а с цветом - у меня стоят свои картинки, но размером 175*312 @ 8 bpp а всё что больше или обрежется, либо будет отброшено стубами. Дальше я в этот пример не стану даже смотреть - проще всё сделать сначала средствами HM HIS, а потом подстроить по месту что надо.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33231 | Зарегистр. 31-07-2002 | Отправлено: 06:51 11-12-2010
    kot280379



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sawerx
    Когда то себе делал, картинка на весь заголовок, код взял на вики (довел до человеческого вида).
    Картинка должна быть: 497*57. При грамотном подходе можно сделать картинку на размер инсталла - без всяких глюков!  
    Тут главное знать, когда нужно скрывать (раскрашивать) те или иные элементы.
    Header

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 12:11 12-12-2010
    sawerx



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пример этот вполне работоспособный и изображение здесь не растягивается а заполнят всю область стандартного окна MUI и цвет текста становится белым.
    kot280379 правильно подметил в своей последней строчке.
    Я пытался убрать страницу Лицензии и Финальную но начало выбивать ошибку, сам разобраться не смог.  
    И ещё я заметил, что на странице хода установки в строке показывающей извлекаемые файлы происходит наслоение текста,  похожее на это.
    Вот хороший пример для 498x58
     
    Victor_VG я давно пользуюсь HM HIS, но для данной задачи, как мне кажется больше подходит Venis IX

    Цитата:
    А по идее, тут же код выбора каталога устанавки не задан никак
    переведи!
    Я тестировал в Windows 7, а как известно у неё есть ограничения для папки C:\Program Files и для простоты я задал этот путь на прямую.

    Всего записей: 61 | Зарегистр. 21-11-2010 | Отправлено: 15:27 12-12-2010
    kot280379



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

    Цитата:
    происходит наслоение текста

    Избавиться от  наслоения текста контролов можно так:

    Код:
    !define MUI_HEADER_TRANSPARENT_TEXT

    Но! до закрытия странички установки.Тут желательно переходить на финиш.
    Да цвет контролов в заголовке под картинку подобрать легко
     

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 15:45 12-12-2010 | Исправлено: kot280379, 03:01 13-12-2010
    Kein



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В отличие от Inno, как я понял, NSIS не поддерживает многоязыкий интерфейс инсталлятора?

    ----------
    Я слишком ленив для всего этого...

    Всего записей: 1331 | Зарегистр. 09-01-2003 | Отправлено: 19:06 13-12-2010
    sawerx



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    В отличие от Inno, как я понял, NSIS не поддерживает многоязыкий интерфейс инсталлятора?

    Читай  \Docs\Modern UI\Readme.html и UI2 или мануал, и примеры  
    \Examples\languages.nsi  или  \Examples\language\languages.nsi
    или альтернативный пример выше 498x58 вот рисунок

    Всего записей: 61 | Зарегистр. 21-11-2010 | Отправлено: 19:45 13-12-2010 | Исправлено: sawerx, 19:49 13-12-2010
    kot280379



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Kein

    Цитата:
    NSIS не поддерживает многоязыкий интерфейс инсталлятора

    Отчасти правда, касательно ANSI-NSIS - не все языки будут корректно отображаться.
    А вот NSIS-UNICODE - без проблем!
    ссылка на NSIS-UNICODE: http://www.scratchpaper.com/

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 22:04 13-12-2010
    Kein



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Тогда такой вопрос:
    http://forum.ru-board.com/messanger.cgi?action=new&touser=Kein
    но только применительно к NSIS.
     
    Возможно сие?

    ----------
    Я слишком ленив для всего этого...

    Всего записей: 1331 | Зарегистр. 09-01-2003 | Отправлено: 03:52 14-12-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kein
     
    А почему бы и не поддерживать ему MUI? Это что такое, как не MUI собственной персоной:

    Код:
    !define PRODUCT_NAME "Far Manager PE2"
    !define PRODUCT_VERSION "2.0.1758"
    !define PRODUCT_PUBLISHER "Far Group"
    !define PRODUCT_WEB_SITE "http://farmanager.com/"
    SetCompressor /SOLID lzma
    !include "MUI.nsh"
    !include "Registry.nsh"
    !define IMin "1"
    !define IMaj "11"
    !define IBld "1"
    !define IRev "1"
    !define IVar "1"
    !define REV "1"
    !define SVN "5344"
    !define MUI_ABORTWARNING
    !define MUI_ICON "far.ico"
    !define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"
    !insertmacro MUI_PAGE_INSTFILES
    !insertmacro MUI_LANGUAGE "English"
    !insertmacro MUI_LANGUAGE "Russian"
    Var lng
    Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
    OutFile "far-${PRODUCT_VERSION}.${SVN}.${REV}-portable.exe"
    InstallDir "$TEMP\FDATA"
    ShowInstDetails hide
    XPStyle on
    VIProductVersion "${PRODUCT_VERSION}.${SVN}"
    VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "Far Manager PE2 ${PRODUCT_VERSION}.${SVN}.${REV} (x86)"
    VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "File and Archive Manager for Windows 2000/XP/2003/Vista/7/2008. Special portable edition."
    VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "Eugene Roshal and Far Group, VictorVG @ VikSoft.Ru"
    VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "Eugene Roshal and Far Group, VictorVG @ VikSoft.Ru"
    VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "VictorVG @ VikSoft.Ru, Russia, Moscow. All Right Reserved."
    VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Compiled at ${__DATE__} on ${__TIME__}."
    VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${IMin}.${IMaj}.${IBld}.${IRev}-${IVar}"
    VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductVersion" "${PRODUCT_VERSION}.${SVN}.${REV}"
    VIAddVersionKey /LANG=${LANG_ENGLISH} "InternalName" "farpe2"
    VIAddVersionKey /LANG=${LANG_ENGLISH} "OriginalFilename" "farman2p"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "ProductName" "Far Manager PE2 ${PRODUCT_VERSION}.${SVN}.${REV} (x86)"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "Comments" "Программа управления файлами и архивами для Windows 2000/XP/2003/Vista/7/2008. Специальное переносимое издание."
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "CompanyName" "Евгений Рошал и Группа разработчиков FAR, VictorVG @ VikSoft.Ru"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "LegalTrademarks" "Евгений Рошал и Группа разработчиков FAR, VictorVG @ VikSoft.Ru"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "LegalCopyright" "VictorVG @ VikSoft.Ru, Россия, Москва. Все права защищены."
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "FileDescription" "Скомпилирована ${__DATE__} в ${__TIME__}."
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "FileVersion" "${IMin}.${IMaj}.${IBld}.${IRev}-${IVar}"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "ProductVersion" "${PRODUCT_VERSION}.${SVN}.${REV}"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "InternalName" "farpe2"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "OriginalFilename" "farman2p"
    Function .onInit
      !insertmacro MUI_LANGDLL_DISPLAY
      StrCpy $lng $LANGUAGE
      StrCmpS $EXEFILE "far-${PRODUCT_VERSION}.${SVN}.${REV}-portable.exe" +6
      StrCmp $lng 1049 +2
      MessageBox MB_OK|MB_ICONSTOP "Waring! Executable file Far Manager PE2 is renamed!$\nPleas, rename is back for prevent any error." IDOK +2
      MessageBox MB_OK|MB_ICONSTOP "Внимание! Исполняемыей файл Far Manager PE2 был переименован!$\nПожалуйста, переименуйте его обратно для предотвращения ошибок." IDOK +1
      Quit
    FunctionEnd
     

    При желании или необходимости сюда можно любой язык прикрутить. Только далоги добавить и сообщения. Ну и я понятно проверки текущего языка с переходом на нужные строки в коде. К примеру, установщик того же KMPlayer поддерживает 14 языков интерфейса установки, а будет надо - ещё добавим, не проблема. Английским владеет вся команда разработчиков и переводчиков, а нужно будет - только сказать "Ребята, надо сделать для установки ... язык." и сделаем. Не сами, так товарищей владеющих нужным языком попросим помочь и сделаем. Просто у Вас сложилось неточное представление о возможностях NSIS, бывает, все мы ошибаемся.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33231 | Зарегистр. 31-07-2002 | Отправлено: 11:03 14-12-2010 | Исправлено: Victor_VG, 11:03 14-12-2010
    Kein



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо, но мы уже выяснили насчет поддержки языков. Вы вопрос в моем предыдущем посте (по ссылке) прочитали?

    ----------
    Я слишком ленив для всего этого...

    Всего записей: 1331 | Зарегистр. 09-01-2003 | Отправлено: 02:25 15-12-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kein
     
    Ссылка вывела сюда "Отправка сообщения", то есть в ПМ. А раз так, то попрошу повторить для меня суть вопроса чтобы я представил себе формулировку задачи и мог помочь с её решением. Что касается UNICODE NSIS, то я его вчера вновь проверил для себя - на моих проектах половина плагинов формируют ошибки. Причём сразу формируется ошибка проверки платформы. А там и плагина нет - код запрашивает WinAPI. Значит для него мне надо переписывать целиком по 30 - 40 тыс строк кода и более. Не реально, проще потом новый написать как плагины нужные появятся.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33231 | Зарегистр. 31-07-2002 | Отправлено: 09:08 15-12-2010
    kot280379



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Victor_VG
    Есть такое явление, да и плагины на оф. сайте в основном для ANSI NSIS, но попадаются и для UNICODE.
    Для Юникодной сборки уже HM HIS уже не подходит (кодировка текста Unicode), как выход, использовать
    в качестве редактора скриптов Unicode NSIS Notepad++

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 12:15 15-12-2010
    Kein



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    http://forum.ru-board.com/topic.cgi?forum=5&topic=35146&start=560#4

    ----------
    Я слишком ленив для всего этого...

    Всего записей: 1331 | Зарегистр. 09-01-2003 | Отправлено: 16:56 15-12-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kot280379
     
    IDM UEStudio + NSIS тэги - у неё вопросов с UNICODE/ANSI/EBCDIC/OEN/MAC/UNIX нет. Сам ей пользуюсь. ИИ прекрасно работает. Как оболочка для того же GCC - идеальный вариант. А учитывая её возможности - поддержка функций, скриптов, отладчиков, десятков компиляторов, прочего - разумнейший выбор, хотя формально и платный. Ну, тут мне проще - есть одна контора, которая периодически покупает софт себя, и как большую любезность с их стороны, по принципу "помощь за помощь" покупают кое что и для меня, хотя скупердяи отборные - за горелую спичку удавятся.
     
    А что касается HM NIS - загляни сюда, потом поговорим о том, чего там не хватает.
     
    Kein
     
    Ответил там же. А "советчикам" можно посоветовать сначала подумать, проверить свои "мудрые советы", а потом отойти и покурить в сторонке коли кроме "вумных мыслей" в голове у них ничего нет. То, что я там описал, многократно проверенно на практике, и метод полностью рабочий и в течении наверное лет пяти - шести применяется ИТ-оделом одной крупной конторы как для коррекции ошибок установочных пакетов Инно, так и для их адаптации к задачам её подразделений.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33231 | Зарегистр. 31-07-2002 | Отправлено: 23:27 15-12-2010 | Исправлено: Victor_VG, 23:50 15-12-2010
    Kein



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Блин, Victor_VG, спасибо за ответ, но тут вышло недопонимание :P Первый раз я ошибся, задал вопрос в теме по Инно, когда как оказалась что установщик был NSIS. Ввиду того факта, что суть вопроса не изменилась, я лишь просто сменил тему :P
     
    То есть, мне нужно то, что я описал ранее, но для NSIS-инсталлера: распаковать, добавить русскую локаль для русских систем, упаковать взад. Возможно?


    ----------
    Я слишком ленив для всего этого...

    Всего записей: 1331 | Зарегистр. 09-01-2003 | Отправлено: 01:10 16-12-2010
    John_White



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Kein

    Цитата:
    распаковать

    используй http://www.7-zip.org/

    Цитата:
    добавить русскую локаль для русских систем

    добавляй

    Цитата:
    упаковать взад

    заново скрипт писать надо для сабжа

    Всего записей: 221 | Зарегистр. 25-07-2009 | Отправлено: 21:45 16-12-2010 | Исправлено: John_White, 21:45 16-12-2010
    Kein



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    То есть, скрипт сам не распаковать никак?

    ----------
    Я слишком ленив для всего этого...

    Всего записей: 1331 | Зарегистр. 09-01-2003 | Отправлено: 00:29 17-12-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kein
     
    Ясно. Ответ прост - Far Manager + плагин Observer, но сложности гарантирую - все макросы будут раскрыты в абсолютных адресах, раз, регистры подставлены их адресами $0 - $19, а не $0 -$9? $0R $R9, переменные и дефайны найти не удастся. Так что, для данного случая проще скрипт заново написать - труда уйдёт меньше...

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33231 | Зарегистр. 31-07-2002 | Отправлено: 01:32 17-12-2010
    kot280379



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Кому интересен и нужен справочник по NSIS качайте:
    http://narod.ru/disk/1645638001/NSIS_Help.zip.html
    Если вы заметите ошибки и неточности - просьба сообщить!

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 19:44 18-12-2010
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Компьютеры » Программы » Активные темы » Nullsoft Scriptable Install System | NSIS


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru