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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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.08 (от 25 сентября 2021 г.)  
     
     
    Ссылки:
    NSIS: страница загрузкирусификатор ветки 2.xx (без гарантии, что подходит!)2.513.02.1NSIS 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 | Исправлено: Maz, 20:31 01-01-2023
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Xanney
     
    Например добавив в секцию Post команду запуска её установки строкой типа:  
     
    ExecWait путь\имя_программы_установки
     
    эта команда запустит лежащую по указанному вами пути программу (должна существовать) и дождётся её завершения, а после пойдёт далее.

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

    Всего записей: 33134 | Зарегистр. 31-07-2002 | Отправлено: 13:00 18-02-2020
    Xanney

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

    Цитата:
    Xanney
     
    Например добавив в секцию Post команду запуска её установки строкой типа:  
     
    ExecWait путь\имя_программы_установки
     
    эта команда запустит лежащую по указанному вами пути программу (должна существовать) и дождётся её завершения, а после пойдёт далее.

     
    Попробовал. Но почему то не работает.

    Всего записей: 4 | Зарегистр. 18-02-2020 | Отправлено: 13:15 18-02-2020 | Исправлено: Xanney, 13:15 18-02-2020
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Xanney
     
    Вот вам мой древний код, изучайте, а я работать:

    Цитата:
    !define PRODUCT_NAME "Update"
    !define PRODUCT_VERSION "1.0"
    !define PRODUCT_PUBLISHER "VictorVG @ VikSoft.Ru"
    !define PRODUCT_WEB_SITE "http://victorvg.mylivepage.ru/"
    SetCompressor /solid lzma
    !include "MUI.nsh"
    !include "ProcLib.nsh"
    !define MUI_ABORTWARNING
    !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-blue-full.ico"
    !define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"
    !define MUI_LICENSEPAGE_RADIOBUTTONS
    !insertmacro MUI_PAGE_LICENSE "license.txt"
    !insertmacro MUI_PAGE_INSTFILES
    !insertmacro MUI_LANGUAGE "English"
    !insertmacro MUI_LANGUAGE "Russian"
    !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
    Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
    OutFile "vg-update.exe"
    InstallDirRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\AnVir Task Manager" "InstallLocation"
    ShowInstDetails hide
    !define HAVE_UPX
    !ifdef HAVE_UPX
      !packhdr tmpexe.tmp "UPX --best -q --compress-icons=0 tmpexe.tmp"
    !endif
    BrandingText "AnVir Task Manager Special Update 1.0"
    AllowRootDirInstall true
    XPStyle on
    ShowInstDetails hide
    RequestExecutionLevel user
    VIProductVersion "1.0.0.0"
    VIAddVersionKey /LANG=${LANG_ENGLISH} ProductName "AnVir Update 1.0"
    VIAddVersionKey /LANG=${LANG_ENGLISH} Comments "Special Update."
    VIAddVersionKey /LANG=${LANG_ENGLISH} CompanyName "VictorVG @ VikSoft.Ru"
    VIAddVersionKey /LANG=${LANG_ENGLISH} LegalCopyright "Copyright © VictorVG by © VikSoft.Ru, 1996 - 2008. All Right Reserved."
    VIAddVersionKey /LANG=${LANG_ENGLISH} FileDescription "Errors bugfix."
    VIAddVersionKey /LANG=${LANG_ENGLISH} FileVersion "1.0.0.1"
    VIAddVersionKey /LANG=${LANG_ENGLISH} ProductVersion "1.0"
    VIAddVersionKey /LANG=${LANG_ENGLISH} InternalName "Update"
    VIAddVersionKey /LANG=${LANG_ENGLISH} LegalTrademarks "VictorVG @ VikSoft.Ru"
    VIAddVersionKey /LANG=${LANG_ENGLISH} OriginalFilename "update"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} ProductName "AnVir Update 1.0"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} Comments "Специальное Обновление."
    VIAddVersionKey /LANG=${LANG_RUSSIAN} CompanyName "VictorVG @ VikSoft.Ru"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} LegalCopyright "Копирайт © VictorVG by © VikSoft.Ru, 1996 - 2008. Все права защищены."
    VIAddVersionKey /LANG=${LANG_RUSSIAN} FileDescription "Исправление ошибок."
    VIAddVersionKey /LANG=${LANG_RUSSIAN} FileVersion "1.0.0.1"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} ProductVersion "1.0"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} InternalName "Update"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} LegalTrademarks "VictorVG @ VikSoft.Ru"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} OriginalFilename "update"
    Function .onInit
      !insertmacro MUI_LANGDLL_DISPLAY
      StrCmpS $EXEFILE "vg-update.exe" +1 +11
      MoreInfo::GetLegalCopyright $EXEFILE
      Pop $0
      StrCmpS $0 "Copyright © VictorVG by © VikSoft.Ru, 1996 - 2008. All Right Reserved." +8
      StrCmpS $0 "Копирайт © VictorVG by © VikSoft.Ru, 1996 - 2008. Все права защищены." +7
      StrCmp $LANGUAGE 1049 +2
      MessageBox MB_ICONSTOP|MB_OK "Update is damaged or not orginal. Please, download new copy on autor suite." IDOK +2
      MessageBox MB_ICONSTOP|MB_OK "Обновление повреждено или подделано. Пожалуйста, скачайте с сайта автора новую копию." IDOK +1
      ExecShell "open" "http://victorvg.mylivepage.ru/"
      Quit
      ${TrmPrc} "AnVir.exe"
      Return
    FunctionEnd
    Section "main" SEC01
      WriteRegDWORD HKCU "Software\AnVir" "ShowAdverts" 0x0
      xtInfo::IsAdministrator
      Pop $0
      StrCmp $0 "true" +1 +10
      WriteRegDWORD HKU ".DEFAULT\Software\AnVir" "ShowAdverts" 0x0
      IfFileExists "$INSTDIR\AnVir.ini" +1 +8
      StrCpy $LANGUAGE 1049 +2
      MessageBox MB_ICONQUESTION|MB_YESNO "Do Your like delete not needed file AnVir.ini?" IDYES +2 IDNO +5
      MessageBox MB_ICONQUESTION|MB_YESNO "Вы хотите удалить не нужный файл AnVir.ini?" IDYES +1 IDNO +4
      Delete "$INSTDIR\AnVir.ini"
      Goto +2
      WriteIniStr "$INSTDIR\AnVir.ini" "AnVir Task Manager" "ShowAdverts" "0"
    SectionEnd
    Section "-Post"
      Exec "$INSTDIR\AnVir.exe Minimized"
      SetAutoClose true
    SectionEnd



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

    Всего записей: 33134 | Зарегистр. 31-07-2002 | Отправлено: 13:31 18-02-2020
    Xanney

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
     
    Огромное спасибо! Нашел в чем проблема. Все устанавливается.
     
    И еще вопросик. У меня не работает запуск программы после завершения установки. Галочка стоит, нажимаю на "Завершить", но программа не запускается. При этом запуская ярлык на рабочем столе все работает.
     
    Можете что-нибудь подсказать?

    Всего записей: 4 | Зарегистр. 18-02-2020 | Отправлено: 16:46 18-02-2020
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Xanney
     
    Добавьте её запуск в секцию Post как в моём примере. Должно сработать.

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

    Всего записей: 33134 | Зарегистр. 31-07-2002 | Отправлено: 20:45 18-02-2020
    Xanney

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

    Всего записей: 4 | Зарегистр. 18-02-2020 | Отправлено: 09:19 19-02-2020
    serg866

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    http://nsis.sourceforge.net/header  
    OutFile "GetVideoController.exe"  
    !include WMI.nsh  
     
    Section  
    ${WMIGetInfo} root\CIMV2 Win32_VideoController Caption callback_Function  
    SectionEnd  
     
    Function callback_Function  
    ;System::Call "user32::OemToChar(t R2, t. r2)"  ; если будут "крякозябры"  
    MessageBox MB_OK "$2"  
    FunctionEnd  
     
    Здравствуйте
    Подскажите, пожалуйста что сделать, чтобы при выполнении этого кода не создавался файл tempwmicbatcfile.bat?

    Всего записей: 3 | Зарегистр. 05-03-2020 | Отправлено: 20:36 05-03-2020
    iglezz

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    serg866
    Вышеприведённый код не создаёт этого файла, этот WMI.nsh тоже.
    Так что нужно показать все файлы проекта.

     
    А нет, это сам wmic.exe его создаёт..
     
    Так где он создаётся, под какой версией Windows и чем мешает?

    Всего записей: 1521 | Зарегистр. 18-02-2003 | Отправлено: 21:00 05-03-2020 | Исправлено: iglezz, 21:14 05-03-2020
    serg866

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    iglezz, в win xp. Просто лишний файл, которого не должно быть. К тому же он создаётся не в папке temp, а на виду у пользователя - в той же папке откуда запущен инсталлятор. Можно ли блокировать создание этого файла?

    Всего записей: 3 | Зарегистр. 05-03-2020 | Отправлено: 22:19 05-03-2020
    iglezz

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    serg866
    На Win 10 не вижу, чтобы создавался батник.  
    Предполагаю, что это особенности wmic.exe под WinXP, про которые лучше спрашивать в теме по WinXP.
     
    В макросе WMIGetInfo идёт запуск команды с захватом вывода:
    Код:
    wmic /NAMESPACE:\\${_NameSpace} path ${_Class} get ${_Property}
    , что для строчки "${WMIGetInfo} root\CIMV2 Win32_VideoController Caption callback_Function" даёт команду
    Код:
    wmic /NAMESPACE:\\root\CIMV2 path Win32_VideoController get Caption

     
    В крайнем случае можно в callback_Function добавить
    Код:
    Delete "ПутьКЭтомуБатнику\tempwmicbatcfile.bat"

    Всего записей: 1521 | Зарегистр. 18-02-2003 | Отправлено: 22:31 05-03-2020 | Исправлено: iglezz, 22:32 05-03-2020
    serg866

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

    Всего записей: 3 | Зарегистр. 05-03-2020 | Отправлено: 00:43 06-03-2020 | Исправлено: serg866, 00:45 06-03-2020
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    serg866
     
    Вам придется разбить PCI Id на две подстроки первая код производителя, вторая собственно код устройства. Разбить строку на части легко, а вот вторая часть задачи - анализ кода устройства потребует текстового файла-списка построенного по принципу (Луа код для простоты) "PCIId:sub(n).."  ".."YouDeviceCode" , а уже ваш YouDeviceCode это идентификатор необходимого патча. И самой трудоёмкой задачей для вас станет создание этой поисковой таблицы. А сам поиск это просто (для кода изготовителя 16 бит)): local name = fileread(table):find(PCIId:sub(17)) . Но, в любом случае задача сведётся либо к медленному построчному, либо к быстрому B-tree поиску. Второй для новичка сложнее в реализации, а за ассоциативный B-tree даже не беритесь - алгоритм очень быстрый, но требует аппаратной поддержки.

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

    Всего записей: 33134 | Зарегистр. 31-07-2002 | Отправлено: 02:57 06-03-2020
    iglezz

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    Зачем же вот так неофита пугать PCI id списками и деревьями с аппаратной поддержкой
    Пусть с малого начнёт...

    Всего записей: 1521 | Зарегистр. 18-02-2003 | Отправлено: 11:19 06-03-2020
    heloy2010

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый вечер. У меня возникла проблема с импортом значений реестра из Data.reg в раздел реестра HKLM\SOFTWARE в 64-разрядной системе. Вносится значение из рег-файла только в HKLM\SOFTWARE\WOW6432Node. Пробовал в трех вариантах, результат один.
    -----------------------------------------------
    Section
    ${If} ${RunningX64}
    SetRegView 64
    ${registry::RestoreKey} "$EXEDIR\Data.reg" $0
    ${Else}
    ${registry::RestoreKey} "$EXEDIR\Data.reg" $0
    ${EndIf}
    SectionEnd
    ----------------------------------------------
    ----------------------------------------------
    Section
    SetRegView 64
    Execwait 'regedit /s "$EXEDIR\Data.reg"'
    SectionEnd
    ----------------------------------------------
    ----------------------------------------------
    Section
    SetRegView 64
    nsExec::Exec 'cmd /c regedit /s "$EXEDIR\Data.reg"'
    SectionEnd
    ----------------------------------------------
    Подскажите пожалуйста, где у меня ошибка? Добавление значение "SetRegView 64" в сценариях ничего ни меняет.
    При использование в сценарии стандартной команды "WriteRegStr HKLM "SOFTWARE\....", проблем не возникает. Но мне необходимо импортировать значение реестра именно из рег-файла.

    Всего записей: 244 | Зарегистр. 17-05-2019 | Отправлено: 19:15 27-03-2020
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    heloy2010
     
    Нужен 64-х битный NSIS с плагинами. В 32-х битном ОС будет редиректить все вызовы в WOW6432.

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

    Всего записей: 33134 | Зарегистр. 31-07-2002 | Отправлено: 19:28 27-03-2020
    iglezz

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

    Код:
    StrCpy $0 '"%WINDIR%\sysnative\regedt32.exe" /s "$EXEDIR\reg64.reg"'
    ExpandEnvStrings $0 '$0'
    ExecWait '$0'

     
    В виде макроса:

    Код:
    !define RegImport '!insertmacro RegImport'
    !macro RegImport REGFILE
      Push $0
      ${If} ${RunningX64}
        StrCpy $0 '"$WINDIR\Sysnative\regedt32.exe"'
      ${Else}
        StrCpy $0 '"$SYSDIR\regedit.exe"'
      ${EndIf}
      ExecWait '$0 /s "${REGFILE}"'  
      Pop $0
    !macroend
     
    Section
    ${RegImport} "$EXEDIR\reg64.reg"
    SectionEnd
     

     
    SetRegView работает для WriteRegStr и прочих инструкций, работающих с реестром, про это в справке и написано.
    А плагины использовать бесполезно, т.к. они 32-битные, как и сам NSIS
     
    Замечание по коду

    Всего записей: 1521 | Зарегистр. 18-02-2003 | Отправлено: 19:30 27-03-2020 | Исправлено: iglezz, 20:24 27-03-2020
    heloy2010

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    iglezz
    Благодарю вас за помощь, сейчас полный порядок.

    Всего записей: 244 | Зарегистр. 17-05-2019 | Отправлено: 05:36 28-03-2020
    WiperX



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветствую! Подскажите пожалуйста как внедрить мр3 файл в инсталятор, чтоб играла музыка во время установки.
    ----------------
    Bannan
    Спасибо друже! Работает даже с последней версией bass.dll Скажи пожалуйста какой прогой ты создавал скрипт?

    Всего записей: 960 | Зарегистр. 17-03-2009 | Отправлено: 01:11 24-05-2020 | Исправлено: WiperX, 18:17 25-05-2020
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    WiperX
     
    Распаковать во времянку и запустить через Exec.

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

    Всего записей: 33134 | Зарегистр. 31-07-2002 | Отправлено: 10:46 24-05-2020
    Bannan



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

    Цитата:
    Подскажите пожалуйста как внедрить мр3 файл в инсталятор, чтоб играла музыка во время установки.

    WiperX, пример сценария:
     

    Код:
     
    # MUI2 GUI - версия ANSI
    # В примере используется библиотека аудио BASS v2.3.0.3
    # Поддерживаются форматы MP3, MP2, MP1, OGG, WAV, AIFF
    # Фоновое воспроизведение музыки во время работы инсталлятора
     
     
    # Используемые библиотеки
    !include "MUI2.nsh"
    !include "LogicLib.nsh"
     
    # Объявляем константы
    !define BASS_DLL "bass.dll" ; файл библиотеки аудио
    !define BASS_LOC "$PLUGINSDIR\${BASS_DLL}"
    !define MP3 "mymusic.ogg" ; файл аудио
    !define MP3_LOC "$PLUGINSDIR\${MP3}"
     
    # Параметры инсталлятора
    OutFile "Bass_MUI2_GUI_ANSI.exe"
    ShowInstDetails show
    XPStyle on
     
    # Страницы мастера установки
    !insertmacro MUI_PAGE_WELCOME
    !insertmacro MUI_PAGE_COMPONENTS
    !insertmacro MUI_PAGE_DIRECTORY
    !insertmacro MUI_PAGE_INSTFILES
    !insertmacro MUI_PAGE_FINISH
     
    # Язык установки
    !insertmacro MUI_LANGUAGE "Russian"
     
    # Секция установки
    Section "My Program"
    ; необходимые файлы для установки
    SectionEnd
     
    # Функция инициализации инсталлятора
    Function .onInit
      ; Инициализация каталога плагинов
      InitPluginsDir
      SetOutPath $PLUGINSDIR
      ; Извлекаем файлы аудио и библиотеки BASS  
      File "/oname=${MP3_LOC}" "${MP3}"
      File "/oname=${BASS_LOC}" "${BASS_DLL}"
     
      ; Выполняем инициализацию аудио устройства
      System::Call '${BASS_LOC}::BASS_Init(i -1,i 44100,i 0,i 0,i n) b.r0'
     
      ; Создаем файловый поток для воспроизведения
      ; Для версии Unicode второй параметр (путь и имя аудио файла) указывается через >m<
      ; Для версии ANSI (если Unicode=false) — второй параметр через >t<
      ; Для цикличного воспроизведения потока пятому параметру задаем значение 4 (BASS_SAMPLE_LOOP=4)
      ; В противном случае (проиграть один раз) задаем значение 0
      System::Call '${BASS_LOC}::BASS_StreamCreateFile(b 0,t `${MP3_LOC}`,i 0,i 0,i 4) i.r1'
     
      ; Если файловый поток успешно создан (не равен 0), то...
      ${If} $1 != "0"
        ; Запускаем воспроизведение канала
        System::Call '${BASS_LOC}::BASS_ChannelPlay(i r1, b 0) i.R4'
         
        ; Устанавливаем громкость канала
        System::Call '${BASS_LOC}::BASS_SetVolume(i 70)'
      ; Если же при создании потока произошли ошибки, то...
      ${Else}
        ; Закрываем все существующие каналы воспроизведения и освобождаем системные ресурсы
        System::Call '${BASS_LOC}::BASS_Free()'
      ${EndIf}
    FunctionEnd
     
    # Функция выгрузки графической оболочки инсталлятора
    Function .onGUIEnd
      ; Останавливаем воспроизведение канала
      System::Call '${BASS_LOC}::BASS_ChannelStop(i r1)'
      ; Освобождаем системные ресурсы
      System::Call '${BASS_LOC}::BASS_StreamFree(i r1)'
      ; Закрываем все существующие каналы воспроизведения и освобождаем системные ресурсы
      System::Call '${BASS_LOC}::BASS_Free()'
    FunctionEnd
     

     
    Работает только с библиотекой BASS v2.3.0.3 (архив). Со всеми последующими версиями - нет.

    Всего записей: 506 | Зарегистр. 30-07-2011 | Отправлено: 13:07 24-05-2020 | Исправлено: Bannan, 14:10 24-05-2020
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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