Показать полную графическую версию : [архив].: NSIS - все вопросы :.
иначе ошибка. »
Var Opencommand не надо было стирать. Добавь назад
ну а как иначе ассоциации убить? »
Надо думать.
Комсомолец
01-11-2008, 19:56
Надо думать. »
будем думать.
Мой новый скрип для перепаковки GOM Player
http://forum.oszone.net/thread-122263.html
не могу удалить с помощью uninstall.exe c рабочего стола и с меню "Пуск" ярлыки
делаю так:
Delete "$DESKTOP\ХХХХХ.lnk"
Delete "$SMPROGRAMS\ХХХХ\ХХХХХ.lnk"
делаю все под админом, а оно не удаляется
bobick, попробуй так:
SetShellVarContext Current
Delete "$DESKTOP\ХХХХХ.lnk"
Delete "$SMPROGRAMS\ХХХХ\ХХХХХ.lnk"
или так:
SetShellVarContext all
Delete "$DESKTOP\ХХХХХ.lnk"
Delete "$SMPROGRAMS\ХХХХ\ХХХХХ.lnk"
А вообще было бы неплохо увидеть скрипт
hb860, большое спасибо - заработало
подскажите кто нибудь, как можно проверить наличие определенной ветки реестра с помощью ф-й NSIS
Вот так: ReadRegStr $0 HKLM "Software\MyProgram" "SetupPath"
IfErrors 0 noerror
DetailPrint "Ключ не существует!"
Goto EndCheck
noerror:
DetailPrint "Ключ существует, значение SetupPath=$0"
EndCheck:
....продолжение кода скрипта
или
ReadRegStr $0 HKLM "Software\MyProgram" ""
IfErrors 0 noerror
DetailPrint "Ключ не существует!"
Goto EndCheck
noerror:
DetailPrint "Ключ существует!"
EndCheck:
....продолжение кода скрипта
Хоть бы раз "Полезное сообщение" ткнул...ммм.. ну да ладно.
Вот такой вот скрипт ставит оперу 10 альфа на русском тихо с ключом /S
; HM NIS Edit Wizard helper defines
!define PRODUCT_NAME "Opera"
!define PRODUCT_VERSION "10 alpha"
!define MSI_NAME "opera installer.msi"
!include "MUI.nsh"
SetCompressor /SOLID lzma
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"
Name "${PRODUCT_NAME}"
Caption "Установка ${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}.exe"
;InstallDir "$TEMP"
ShowInstDetails show
Section "Core" SEC01
SetOutPath "$TEMP"
File "d:\opera\${MSI_NAME}"
ExecWait "msiexec.exe /i $\"$TEMP\${MSI_NAME}$\" /qb ALLUSERS=1 CREATE_DESKTOP_ICON=1 CREATE_QUICKLAUNCH_ICON=1 CREATE_STARTMENU_ICONS=1 MULTI_USER_SETTING=1$\""
Delete "$TEMP\${MSI_NAME}"
File "d:\opera\install_flash_player.exe"
ExecWait "$TEMP\install_flash_player.exe /S"
Delete "$TEMP\install_flash_player.exe"
SetOverwrite on
SetOutPath "$PROGRAMFILES\Opera 10 preview"
Rename "$PROGRAMFILES\Opera 10 preview\english.lng" "$PROGRAMFILES\Opera 10 preview\english_enUS.lng"
File /oname=english.lng "d:\opera\ru.lng"
CreateDirectory "$PROGRAMFILES\Opera 10 preview\locale\ru"
SetOutPath "$PROGRAMFILES\Opera 10 preview\locale\ru"
File "d:\opera\ru.lng"
SetAutoClose false
SectionEnd
Function .onInit
;SetSilent silent
FunctionEnd
Vetoshkin
16-12-2008, 17:02
А вот с такой проблемой при инсталляции кто - нибудь сталкивался?
Собственно сама проблема, но сначала постановка.
1. Мне надо что то инсталлировать, допустим один файл приложение и конфигурационный файлик;
2. Но этот конфигурационный файлик может быть различным, а в зависимости от него приложение будет выглядеть по разному или делать по разному, не суть важна, важно другое - при инсталляции можно выбирать. Как это делать примеров много.
3. Мне же надо во время инсталляции прочитать другой файлик (почему другой - вопрос требует обстоятельного ответа, если нужно - могу описать) и в зависимости от того что там есть - подкорректировать диалог для выбора компонент, во время инсталляции, что то скрыть, чек боксы по другому активировать, много чего можно придумать.
Так вот сама проблема, для самодеятельных диалогов вроде это можно сделать: при инициализации скрипта писать в ИНИ с описанием диалога - а как это сделать для МУИ приложения?
Кто нибудь знает?
Оказалось всё очень просто, надо было лишь более или менее внимательно мануал почитать. Обьясняю: Есть такие две функции - SectionSetFlags / SectionGetFlags . Они то как раз и позволяют делать то что требуется. Там правда какая - то мутота с номерами секций - хотел свои имена - ну и начались, то синтаксические ошибки, то логические. Но со стандартными именами SEC01, SEC02,... проходит всё на ура. Если будет нужно - могу полный пример смастерить.
Комсомолец
17-12-2008, 17:00
скрипт QIP Infium. .
!define PRODUCT_NAME "QIP Infium"
!define PRODUCT_VERSION "v.9020"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define BRANDING "Разработка hb860 и моя немножко, 2008"
; MUI 1.67 compatible ------
!include "MUI.nsh"
!include "FileFunc.nsh"
SetCompressor /SOLID lzma
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "E:\Nsis\Icons\qipinfium.ico"
!define MUI_UNICON "E:\Nsis\Icons\unqipinfium.ico"
!define MUI_COMPONENTSPAGE_NODESC
; Welcome page
!insertmacro MUI_PAGE_WELCOME
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!insertmacro MUI_PAGE_FINISH
; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES
; Language files
!insertmacro MUI_LANGUAGE "Russian"
BrandingText "${BRANDING}"
Name "${PRODUCT_NAME}"
Caption "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}_${PRODUCT_VERSION}_PowerPack.exe"
InstallDir "$PROGRAMFILES\QIP Infium"
ShowInstDetails show
ShowUnInstDetails show
InstType "Полная"
InstType "Сокращенная"
Section "!${PRODUCT_NAME}" idx0
SectionIn 1 2 RO
SetOutPath "$INSTDIR"
File /r "C:\QIP Infium\*.*"
WriteUninstaller "$OUTDIR\UnQIP.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$OUTDIR\infium.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$OUTDIR\UnQIP.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
SetShellVarContext current
WriteRegStr HKCU "Software\Infium\Main" "CurLangFile" "Russian"
SectionEnd
Section "Ярлыки в меню Пуск" idx1
SectionIn 1 2
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\infium.exe"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\UnQIP.exe"
SectionEnd
Section "Ярлыки в панели быстрого запуска" idx2
SectionIn 1 2
IfSilent +3
SetShellVarContext all
CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\infium.exe"
SectionEnd
Section "Ярлык на рабочем столе" idx3
SectionIn 1
IfSilent +3
SetShellVarContext all
CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\infium.exe"
SectionEnd
Function un.onUninstSuccess
HideWindow
MessageBox MB_ICONINFORMATION|MB_OK "Удаление программы $(^Name) было успешно завершено."
FunctionEnd
Function un.onInit
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Вы уверены в том, что желаете удалить $(^Name) и все компоненты программы?" IDYES +2
Abort
FunctionEnd
Section Uninstall
RMDir /r "$INSTDIR\"
RMDir /r "$INSTDIR\Langs\"
RMDir /r "$INSTDIR\Plugins\"
RMDir /r "$INSTDIR\Profiles\"
RMDir /r "$INSTDIR\Protos\"
RMDir /r "$INSTDIR\Skins\"
RMDir /r "$INSTDIR\Smilies\"
RMDir /r "$INSTDIR\Sounds\"
RMDir /r "$INSTDIR\Users\"
SetShellVarContext all
RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
Delete "$DESKTOP\${PRODUCT_NAME}.LNK"
Delete "$QUICKLAUNCH\${PRODUCT_NAME}.LNK"
DeleteRegKey HKCU "SOFTWARE\Infium"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
SetAutoClose true
SectionEnd
Удачи всем!
Здравсвуйте, господа.
Есть скринсэйвер Dream Aquarium 1.07, запакованный NSIS. Установка автоматом проходит с ключом /s, однако потом появляются 3 окошка:
1. Запустить Dream Aquarium 1.07?
2. Добавить иконку на рабочий стол?
3. Сделать скрином по умолчанию?
Мне нужно ответить:
1. Нет
2. Нет
3. Да
Вопрос: как это сделать в автомате, чтобы окна не появлялись? Спасибо.
Вам надо написать скрипт AutoIT
Подробнее тут: http://forum.oszone.net/thread-98914.html
katok888
21-12-2008, 12:26
Вот тут (http://depositfiles.com/files/0gejkw83u) лежит перевод справки для NSIS ,немного кривой правда . Все же лучше чем ничего.
Комсомолец
23-12-2008, 13:07
katok888, переложи на ifolder, плиз. я с локалки.
Комсомолец, возьми, я положил на Ifolder (http://ifolder.ru/9701873)
Здравсвуйте, господа.
Есть скринсэйвер Dream Aquarium 1.07, запакованный NSIS. Установка автоматом проходит с ключом /s, однако потом появляются 3 окошка:
1. Запустить Dream Aquarium 1.07?
2. Добавить иконку на рабочий стол?
3. Сделать скрином по умолчанию?
Мне нужно ответить:
1. Нет
2. Нет
3. Да
Вопрос: как это сделать в автомате, чтобы окна не появлялись? Спасибо. »
Сделай проще:
daqua.cmd
1. daqua.exe /verysilent
2. DEL иконку с рабочего стола
жмешь все в 7zSFX с запуском daqua.cmd при распаковке.
Я так сделал инстал Daqua для автоматической установки, и запускаю в SVCPACK
(вроде так, но уже не помню)
вобщем на готовый, если интересно разберешься, если нет, просто будешь использовать...
http://depositfiles.com/files/5tte3ps7p
Про NSYS
Я бы поубивал тех кто его написал, у него ключи кроме /S и /D еще есть стандартные? Или только т которые добавляет создатель архива? Тогда как их узнать?
Мне нужна установка приложения VERYSILENT NORESTART, чтобы он вообще не показывался, а /S всеравно выдает пару окон и просит нажать ОК.
Есть ли у кого скрипт для утановки кодеков (особенно интересует ffdshow) или может программа которая из готового установщика сможет выдрать хотя бы часть скрипта?
А чем K-Lite не подходит? Создайте ini файл с необходимыми настройками, укажите что именно вы хотите установить и устанавливайте в тихую с уже заданными настройками.
Или это принципиально?
Мне нужна установка приложения VERYSILENT NORESTART, чтобы он вообще не показывался, а /S всеравно выдает пару окон и просит нажать ОК. »
Это кривые руки автора скрипта, а не проблема NSIS. Можно в любом инсталяторе писать через задницу, потому воздержитесь от убийств, уважаемый.
SamLab,
Строка : Output directory: C:\Program Files\ffdshow
Строка : Extract: ffdshow.ax
Строка : Extract: libavcodec.dll
Строка : Unregistering: C:\Program Files\ffdshow\ffdshow.ax
Строка : Registering: C:\Program Files\ffdshow\ffdshow.ax
Строка : Created uninstaller: uninstall.exe
Строка : Create directory: C:\Documents and Settings\Администратор\Главное меню\Программы\ffdshow
Строка : Create shortcut: C:\Documents and Settings\Администратор\Главное меню\Программы\ffdshow\Uninstall.lnk
Строка : Create shortcut: C:\Documents and Settings\Администратор\Главное меню\Программы\ffdshow\Configuration.lnk
Строка : Extract: libpostproc.dll
Строка : Extract: copying.txt
Строка : Extract: readme.txt
Строка : Output directory: C:\Program Files\ffdshow\help
Строка : Extract: ff.css
Строка : Extract: ffmpeg-button.gif
Строка : Extract: index.html
Строка : Extract: presets.html
Строка : Extract: compilation.html
Строка : Completed
Сам напишешь? Или помочь? Я думаю напишешь :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC