Ru-Board.club
← Вернуться в раздел «Программы»

» NSIS (Nullsoft Scriptable Install System)

Автор: makarei
Дата сообщения: 03.08.2007 09:04
iglezz
Спасибо! Добавил SetShellVarContext и теперь все как надо.

[more=Скрипт]

; Script for setting up DivX Decoder

Name "DivX Decoder"
BrandingText ""
SetCompressor /SOLID LZMA
OutFile "C:\1\Output\setup.exe"
InstallDir "$PROGRAMFILES\DivX Decoder"
ShowInstDetails show
ShowUnInstDetails show

Function .onInit
MessageBox MB_YESNO|MB_ICONQUESTION "This will install $(^Name). Do you wish to continue?" IDYES +2
Abort
FunctionEnd

Section -Files
SetOutPath "$INSTDIR"
File "DivX\PROGRAMFILES\config.exe"
SetOutPath "$SYSDIR"
File "C:\1\DivX\SYSDIR\divxdec.ax"
RegDLL "$SYSDIR\divxdec.ax"
File "C:\1\DivX\SYSDIR\DivXMedia.ax"
RegDLL "$SYSDIR\DivXMedia.ax"
File "C:\1\DivX\SYSDIR\DivXsm.exe"
File "C:\1\DivX\SYSDIR\divxsm.tlb"
File "C:\1\DivX\SYSDIR\qt-dx331.dll"
SectionEnd

Section -PostInstall
SetShellVarContext all
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DivX Decoder" "DisplayName" "DivX Decoder"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DivX Decoder" "UninstallString" "$INSTDIR\uninstall.exe"
WriteUninstaller "$INSTDIR\uninstall.exe"
CreateDirectory "$SMPROGRAMS\DivX Decoder"
CreateShortCut "$SMPROGRAMS\DivX Decoder\Configuration.lnk" "$INSTDIR\config.exe"
CreateShortCut "$SMPROGRAMS\DivX Decoder\Uninstall.lnk" "$INSTDIR\uninstall.exe"
SectionEnd

Section -Run
ExecWait '"$SYSDIR\DivXsm.exe" /register'
SectionEnd

#### Uninstaller code ####

Function un.onInit
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2
Abort
FunctionEnd

Function un.onUninstSuccess
HideWindow
MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer."
FunctionEnd

Section Uninstall

SetShellVarContext all

ExecWait '"$SYSDIR\DivXsm.exe" /unregister'

DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DivX Decoder"

Delete "$INSTDIR\uninstall.exe"
Delete "$SYSDIR\qt-dx331.dll"
Delete "$SYSDIR\divxsm.tlb"
Delete "$SYSDIR\DivXsm.exe"
UnRegDLL "$SYSDIR\DivXMedia.ax"
Delete "$SYSDIR\DivXMedia.ax"
UnRegDLL "$SYSDIR\divxdec.ax"
Delete "$SYSDIR\divxdec.ax"
Delete "$INSTDIR\config.exe"

Delete "$SMPROGRAMS\DivX Decoder\Configuration.lnk"
Delete "$SMPROGRAMS\DivX Decoder\Uninstall.lnk"
RMDir "$SMPROGRAMS\DivX Decoder"

RMDir "$INSTDIR"

SetAutoClose true
SectionEnd


[/more]
Автор: ZeRrOr
Дата сообщения: 05.08.2007 19:50
А как сделать автозагрузку???

Если через

Цитата:
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Run" "MyProg" "$INSTDIR\MyProg.exe"

То возникает вопрос, а как потом удалить эту запись...

Или есть другие способы???
Автор: iglezz
Дата сообщения: 05.08.2007 19:59
ZeRrOr

Цитата:
То возникает вопрос, а как потом удалить эту запись...

аналогичным образом

Код: DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Run" "MyProg"
Автор: ZeRrOr
Дата сообщения: 05.08.2007 20:36
thx,
Еще один вопрос если не сложно, есть кусок скрипта

Код:
Function PageReinstall
!insertmacro MUI_HEADER_TEXT "Already Installed" "Choose the maintenance option to perform."
ReadRegStr $R0 HKLM "Software\Antaris\TestReInstall" "Install_Dir"
StrCmp $R0 "" 0 +2
Abort
StrCpy $R0 "2"

!insertmacro MUI_INSTALLOPTIONS_DISPLAY "ReInstall.ini"
!insertmacro MUI_INSTALLOPTIONS_READ $R1 "ReInstall.ini" "Field 2" "State"
StrCmp $R0 "1" 0 +1
StrCmp $R0 "2" 0 +2
StrCmp $R1 "1" reinst_done
ExecWait '$INSTDIR\uninstall.exe'
Quit
reinst_done:
FunctionEnd
Автор: iglezz
Дата сообщения: 05.08.2007 21:14
ZeRrOr
надо смотреть весь скрипт целиком
Автор: ZeRrOr
Дата сообщения: 05.08.2007 21:50
Скрипт
Там же есть и вопрос.

+ можно ли использовать в инсталяторе формат картинок кроме *.bmp (конкретно *.png) интересует.
Автор: Ohotnic
Дата сообщения: 06.08.2007 03:09
Ребята нужна помощь!!!
После русификации от СамЛаба в NSIS menu какието кракозябры вообще не че не понять.
Вот Вам скрин:

Добавлено:
И еще. Что это за ошибка в процессе компиляции?

Цитата:
Generating uninstaller...
Error finding icon resources: installer, uninstaller number of icons doesn't match - see the Icon instruction's documentation for more information -- failing!
Error - aborting creation process
Автор: iglezz
Дата сообщения: 06.08.2007 10:11
Ohotnic

Цитата:
И еще. Что это за ошибка в процессе компиляции?

иконки для инсталлера и деинсталлятора должны иметь одинаковый размер, количество цветов и прочее (в общем различатся могут только содержимым (т.е. рисунком) конкретных иконок)

Цитата:
После русификации от СамЛаба в NSIS menu какието кракозябры

А что там русифицировать-то?
Автор: ZeRrOr
Дата сообщения: 06.08.2007 13:20
со скриптом разобрался, но все таки осталось еще пара вопросов:

-можно ли использовать в инсталяторе формат картинок кроме *.bmp (конкретно *.png интересует).
-возможно ли использованно нескольких сжатий одновременно?
Автор: iglezz
Дата сообщения: 06.08.2007 14:31

Цитата:
можно ли использовать в инсталяторе формат картинок кроме *.bmp

где конкретно?

Цитата:
возможно ли использованно нескольких сжатий одновременно?

в чем смысл?
Автор: ZeRrOr
Дата сообщения: 06.08.2007 15:20

Цитата:
где конкретно?

Ну например, в Splash'e или в самом инсталяторе здесь например:
-MUI_HEADERIMAGE_BITMAP
-MUI_WELCOMEFINISHPAGE_BITMAP

Цитата:
в чем смысл?

А это разве не даст большего сжатия???

Автор: iglezz
Дата сообщения: 06.08.2007 17:55
ZeRrOr
NewAdvSplash plug-in поддерживает bmp/gif/jpeg.
В самом инсталляторе - нет.


Цитата:
А это разве не даст большего сжатия???

сомнительно
SetCompressor /solid lzma + размер слова побольше дефолтного
иногда давит даже получше чем сам 7zip
Автор: IMPOMEZIA
Дата сообщения: 06.08.2007 18:23
ZeRrOr

Цитата:
А это разве не даст большего сжатия???

Поэкспериментируйте, сжимая одни и те же файлы 7-Zip-ом (lzma), Bzip2-ом, и Zip-ом, многое сразу прояснится , в общем случае то, что сжато одним архиватором уже практически не возможно сжать, в том числе и тем же архиватором.
а так:

Цитата:
SetCompressor /solid lzma
- обычно обеспечивает лучшее сжатие.

Автор: ZeRrOr
Дата сообщения: 06.08.2007 23:28
Про сжатие понял))

Цитата:
NewAdvSplash plug-in поддерживает bmp/gif/jpeg.

буду пробовать
биг tnx....
Автор: AlexUANAlex
Дата сообщения: 09.08.2007 09:46
Подскажите пожалуйста, как при помощи NSIS перезагрузить браузер (Opera и Firefox)?

ПРобовал при помощи

Код:
FindWindow $0 "тра ля ля - Opera"
SendMessage $0 ${WM_CLOSE} 0 0
Автор: SmarterBB
Дата сообщения: 11.08.2007 02:04
насчет реестра - попробуй определить версию фаерфокса и поместить ее в переменную (скажем $FIREFOX) а потом подставить в сам путь Software\SOFTWARE\Mozilla\$FIREFOX\extensions\Plugins

думаю что сработает, но не буду утверждать.
Автор: SpoinT
Дата сообщения: 13.08.2007 14:34
Как сделать такой диалог выбора компонентов, чтобы снизу было описание.



Добавлено:
Вопрос снимаю.
Автор: Ohotnic
Дата сообщения: 14.08.2007 12:13
А есть ли редактор для скриптового языка NSIS, но не HM NIS Edit, а более автоматизированный, как например IStool для Inno Setup?
Автор: iglezz
Дата сообщения: 14.08.2007 14:47
Ohotnic
мне лично scite хватает (подсветка, вызов справки по слову под курсором, компиляция), т.к. навороченнными скриптами не балуюсь.

а что подразумевается под автоматизацией у IStool?
Автор: IMPOMEZIA
Дата сообщения: 14.08.2007 15:34
Ohotnic
EclipseNSIS
http://nsis.sourceforge.net/EclipseNSIS_-_NSIS_plugin_for_Eclipse
Автор: SpoinT
Дата сообщения: 14.08.2007 15:34
Ohotnic

Цитата:
а более автоматизированный

А чем здесь плох? Все при нём...
Автор: Ohotnic
Дата сообщения: 16.08.2007 06:34
Я скачал и установил EclipseNSIS, но при открытии файла в формате .nsi кнопки я не могу скомпилировать скрипт. Кнопки недоступны. Почему и как с этим бороться?
Автор: Ohotnic
Дата сообщения: 17.08.2007 08:27
Вопрос снят, я разобрался.
Автор: Ohotnic
Дата сообщения: 17.08.2007 14:34
Как реализовать последовательность записи в секцию ini файла, отличающуюся от порядка записи компонентов в скрипте?
Автор: iglezz
Дата сообщения: 26.08.2007 00:43
NSIS 2.30 | Download | Release notes
Автор: Vetal83
Дата сообщения: 27.08.2007 00:30
Никто незнает почему в NSIS 2.30 при использовании MUI2 на странице компонентов не работают чекбоксы?
Автор: SpoinT
Дата сообщения: 27.08.2007 00:37
MUI2 - в чём отличие от предыдущей? Скомпилировал, ничего не изменилось? А может и не должно было...
Автор: Vetal83
Дата сообщения: 27.08.2007 01:20
SpoinT
Я так понял что через MUI2 можно страницы создавать через код а не через ini, а так вроде ничего не изменилось.
Автор: SpoinT
Дата сообщения: 27.08.2007 08:32
Vetal83
Ну тогда бы пример дали, а то в Examples нет ничего подобного...
Автор: IMPOMEZIA
Дата сообщения: 27.08.2007 19:31
Если почитать историю версий, то MUI2 базируется на nsDialogs, которые были добавлены в предыдущей версии с целью заменить InstallOptions, но в прошлой версии к nsDialogs не было абсолютно никакой документации, одним словом всё это ранняя бета.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364

Предыдущая тема: The Bat!


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.