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

» NSIS (Nullsoft Scriptable Install System)

Автор: Bannan
Дата сообщения: 18.04.2016 22:34
Victor_VG, ваше обновление какое-то стрёмное. Судя по отчёту с VirusTotal, инсталлятор содержит полный набор юного кулхацкера.
Автор: Victor33Man
Дата сообщения: 22.04.2016 20:26
Русский v2.51
Автор: khasia
Дата сообщения: 06.06.2016 07:38
Русский NSIS 3.0 RC1 от leserg
Автор: Petrzhukv
Дата сообщения: 19.06.2016 02:28
[more] ребята,прошу помощи. Надо чтобы при установке проверялось есть ли прога на компе, если есть то установка путь по умолчанию, если нет то чтобы давала выбрать.




; Define your application name
!define APPNAME "патч"
!define APPNAMEANDVERSION "патч 1.1"

; Main Install settings
Name "${APPNAMEANDVERSION}"
InstallDir "$PROGRAMFILES\Lineage II"
OutFile "..\..\..\..\Program Files\Venis\Patch.exe"

; Modern interface settings
!include "MUI.nsh"

!define MUI_ABORTWARNING
!define MUI_FINISHPAGE_RUN "$INSTDIR\systemmsg-e.dat"

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "Документ RTF.rtf"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_RESERVEFILE_LANGDLL

Section "манор" Section1

    ; Set Section properties
    SetOverwrite on

    ; Set Section Files and Shortcuts
    SetOutPath "$INSTDIR\system"
    File "systemmsg-e.dat"

SectionEnd

Section "кристалы" Section2

    ; Set Section properties
    SetOverwrite on

    ; Set Section Files and Shortcuts
    SetOutPath "$INSTDIR\system"
    File "itemname-e.dat"

SectionEnd

Section "Карта" Section3

    ; Set Section properties
    SetOverwrite on

    ; Set Section Files and Shortcuts
    SetOutPath "$INSTDIR\systextures"
    File "L2Font-e.utx"

SectionEnd

; Modern install component descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
    !insertmacro MUI_DESCRIPTION_TEXT ${Section1} "Удаляет криты, при маноре в пати."
    !insertmacro MUI_DESCRIPTION_TEXT ${Section2} "Показывает количество кристалов в вещях."
    !insertmacro MUI_DESCRIPTION_TEXT ${Section3} "Раскраска карты по зонам ТП."
    
!insertmacro MUI_FUNCTION_DESCRIPTION_END

InstallButtonText "Поехали?"
; On initialization
Function .onInit

    !insertmacro MUI_LANGDLL_DISPLAY

FunctionEnd

BrandingText "ПАТЧ"

; eof [/more]
Автор: WiperX
Дата сообщения: 20.06.2016 16:37
Всем привет! Подскажите как реализовать такое:
[more]

[/more]
Автор: iglezz
Дата сообщения: 20.06.2016 19:59
Petrzhukv
4.5.3 Callbacks в мануале
На страницу выбора пути поставить колбэк, где обработать свой вариант.
Примерно так:

Код: Page directory PreDirectoryCallbackFunction

Function PreDirectoryCallbackFunction
IfFileExists "x:\путь\файлизпрограммы" 0 +3
StrCpy $INSTDIR "x:\путь"
Abort
FunctionEnd
Автор: Petrzhukv
Дата сообщения: 21.06.2016 20:38
Благодарствую, пошол пытать.
Автор: Krinkels
Дата сообщения: 28.06.2016 15:24
Представляю Botva3.dll. Переделана из Botva2.dll, и переименована, дабы не путаться. Для оригинальных функций сделаны функции обертки( для комфортной работы с nsis ) + чуть чуть переписан код.
В архиве либа + пара примеров. Желательно потестить более сведущим в nsis нежели мне.

Ссылка 1
Ссылка 2
Автор: Sanch8
Дата сообщения: 10.07.2016 14:34
NSIS 3.0 RC2

F.1 3.0 Release Candidate 2
F.1.1.1 Major Changes

Fixed LogicLib nested ${Select} bug
!makensis command must force Unicode output to be UTF-8 (bug #1147)

F.1.1.2 Minor Changes

Zip2Exe aborts if the zip file is encrypted (bug #1141)
Added LogicLib & operator
NSIS Menu POSIX fixes (bug #1144)

F.1.1.3 Translations

PortugueseBR fixes (deguix)
Minor tweaks to Danish.nlf (scootergrisen) (bug #1140)
Автор: xChe
Дата сообщения: 25.07.2016 21:16
Релиз вышел - NSIS 3.0
Автор: iglezz
Дата сообщения: 30.07.2016 00:02
В колбэке страницы instfiles прячу кнопку "< назад"

Код: GetDlgItem $1 $HWNDPARENT 3 ;back button
ShowWindow $1 ${SW_HIDE}
Автор: MKN
Дата сообщения: 30.07.2016 12:00
iglezz

Цитата:
В колбэке страницы instfiles прячу кнопку "< назад"
после завершения установки эта кнопка опять появляется

Где появляется ? Если на финишной странице, то конечно появляется. Надо эту кнопку убирать на каждой странице.
Автор: iglezz
Дата сообщения: 30.07.2016 14:42
MKN
Кнопка становится видимой после выхода со страницы instfiles даже если она изначально была спрятана.
Вот минималистичный [more=пример]
Код: OutFile "${__FILE__}.exe"
RequestExecutionLevel "user"

Page instfiles "" "" inst_exit

Function inst_exit
    Messagebox MB_OK "instfiles exit"
FunctionEnd

Section
SectionEnd

Автор: VictorVG4
Дата сообщения: 30.07.2016 15:23
iglezz

Правильно, т.к. каждая страница обрабатывается индивидуально. Иначе теряется гибкость кода.
Автор: iglezz
Дата сообщения: 30.07.2016 16:32
Где же тут гибкость, если до этих кнопок на этой финальной стадии не дотянуться?
Автор: VictorVG4
Дата сообщения: 30.07.2016 17:11
iglezz

А если вместо стандартной финальной страницы написать свою? NSIS ведь это допускает. А по поводу гибкости - если сравнить к примеру Inno Setup или Wise Install Maker с NSIS то в первых вставить в код свой алгоритм не сильно выйдет. В Inno вылезут ограничения Паскаля, а Wise насколько я помню тот вариант середины 90-х с которым работал всё было жёстко регламентировано реализованным в среде набором инструментов, и коли надо сделать что-то, что в среде отсутствует - переписывай всю среду с нуля.
Автор: Sanch8
Дата сообщения: 30.07.2016 19:36
iglezz
Убрать кнопку "< Назад" на всех страницах можно вот-так:

Код: Name "Test"
OutFile "OutFile.exe"

!include "MUI.nsh"
!define MUI_CUSTOMFUNCTION_GUIINIT onGUIInit

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE "Russian"

Function onGUIInit
    GetDlgItem $0 $HWNDPARENT 3
    System::Call 'user32::MoveWindow(i $0, i 0, i 0, i 0, i 0, i 1)'
FunctionEnd

Section Test
SectionEnd
Автор: iglezz
Дата сообщения: 31.07.2016 01:32
Sanch8
Спасибо!
Предполагал такой вариант, но не мог сообразить как это пишется..
Автор: Pereplet74
Дата сообщения: 02.08.2016 12:50
Всем доброго дня.
Подскажите пожалуйста как реализовать запуск двух файлов, которые входят в инсталятор.

Написал вызов функции :
!define MUI_FINISHPAGE_RUN_FUNCTION "start_setup"

Сама функция :

Function start_setup

!define RUN "$INSTDIR\jre-8u102-windows-x64.exe"
!define RUN "$INSTDIR\postgresql-9.5.3-1-windows-x64.exe"

FunctionEnd

Заранее благодарю.
Автор: VictorVG4
Дата сообщения: 02.08.2016 16:45
Pereplet74

А вызвать их из секции POST через nsExec | ExecWait не пробовали?
Автор: Pereplet74
Дата сообщения: 03.08.2016 14:39
VictorVG4 Спасибо! все получилось =)

Не могу решить последнюю задачу, как запустить jar файл от имени администратора, на который создается ссылка на рабочем столе.

CreateShortCut "$DESKTOP\КРОС.lnk" "$INSTDIR\smpo-server\server.jar"


через командную строку могу вызывать java -jar url
а как тут не соображу, нид хелп!!!


!define MUI_FINISHPAGE_RUN "java -jar $INSTDIR\smpo-server\smpo-server.jar"
так не работает :\

нужно к ярлыку прикрутить запуск сервера.
Автор: VictorVG4
Дата сообщения: 03.08.2016 15:29
Pereplet74

1) а зачем звать через run? nsExec передаст командную строку java.exe и она запустит свой jar. Но командная строка вызова должна быть в кавычках чтобы воспринималась как один аргумент или компилятор выведет сообщение об ошибке....
Автор: Sanch8
Дата сообщения: 04.08.2016 14:14
Pereplet74
Тут может помочь хедер от K.A.V:

Код: !include "adminShortCut.nsh"

CreateShortCut "$DESKTOP\КРОС.lnk" "$INSTDIR\smpo-server\server.jar"
${aSC::SetON} "$DESKTOP\КРОС.lnk" ; Запуск от имени администратора
Автор: VictorVG4
Дата сообщения: 04.08.2016 14:39
Sanch8

Только скачать с осзоне можно только после логона:

Цитата:
Системное сообщение

Вы не авторизованы на форуме или не имеете доступа к этой странице. Это могло произойти по одной из нескольких причин:

а если кто там логин не заводил за не нужностью? Заводить аккаунт на сотнях сайтов ради одного хидера? Так что ваше упоминание можно трактовать и как рекламу постороннего ресурса со сманиванием пользователей. А оно вам надо?
Автор: Sanch8
Дата сообщения: 04.08.2016 15:14
VictorVG4
[more=adminShortCut.nsh]
Код: !include "FileFunc.nsh"
!include "LogicLib.nsh"

; adminShortCut.nsh
; Последнее обновление: 09.02.2015
; Автор: K.A.V.
; http://forum.oszone.net/member.php?userid=60480
;
; ${aSC::SetON} "полный путь к ярлыку.lnk"
; ставит отметку на чекбокс "Запуск от имени администратора"
;
; ${aSC::SetOFF} "полный путь к ярлыку.lnk"
; снимает отметку с чекбокса "Запуск от имени администратора"
;
; Пример команды
; ${aSC::SetON} "$DESKTOP\Мой ярлык.lnk"
;

!define aSC::SetON "!insertmacro aSC::SetON"
!macro aSC::SetON _ShortCutPath_
Push $0
${GetFileExt} "${_ShortCutPath_}" $0
${If} $0 == "lnk"
FileOpen $0 "${_ShortCutPath_}" a
FileSeek $0 "21" SET
FileWriteByte $0 "32"
FileClose $0
${EndIf}
Pop $0
!macroend

!define aSC::SetOFF "!insertmacro aSC::SetOFF"
!macro aSC::SetOFF _ShortCutPath_
Push $0
${GetFileExt} "${_ShortCutPath_}" $0
${If} $0 == "lnk"
FileOpen $0 "${_ShortCutPath_}" a
FileSeek $0 "21" SET
FileWriteByte $0 "00"
FileClose $0
${EndIf}
Pop $0
!macroend
Автор: VictorVG4
Дата сообщения: 04.08.2016 15:58
Sanch8

Спасибо! При случае пригодится.
Автор: Pereplet74
Дата сообщения: 05.08.2016 10:24
А вообще что бы обойти все эти подводные камни, кто-нибудь знает как произвести установку от имени администратора? =)
Автор: MKN
Дата сообщения: 05.08.2016 12:59
Pereplet74

Цитата:
как произвести установку от имени администратора?

В скрипте :

Код: RequestExecutionLevel admin
Автор: Pereplet74
Дата сообщения: 08.08.2016 09:32
[more] Всем кто подсказал респект и уважуха (:
Вот скажите мне, есть ли команда что бы создать ярлык с иконкой?

CreateShortCut "$DESKTOP\Ярлык.lnk" "$INSTDIR\проект.url" //тут почему то получается иконка белой странички вместо браузера
CreateShortCut "$DESKTOP\Ярлык2.lnk" "$INSTDIR\проект.cmd" //а тут страшная шестеренка, сменить cmd файлу иконку оказалась не так просто как вручную ярлыку на рабочем столе :\


Нагуглил что через командную строку можно как вот так делать:

@ECHO OFF
SET Icon_1=C:\Windows\surbey.ico
SET Folder=E:\17743124072517
XCOPY "%Icon_1%" "%Folder%" /H>nul
ECHO [.ShellClassInfo]>"%Folder%\desktop.ini"
FOR %%I IN ("%Icon_1%") DO ECHO IconFile=%%~nxI>>"%Folder%\desktop.ini"&&SET Icon_2=%Folder%\%%~nxI
1>>"%Folder%\desktop.ini" ECHO IconIndex=0
ATTRIB +R "%Folder%"
ATTRIB +H "%Icon_2%"
ATTRIB +H "%Folder%\desktop.ini"

Но чё то некрасивый код, совсем не приходится по вкусу :\ [/more]
Автор: iglezz
Дата сообщения: 08.08.2016 10:33
Pereplet74
В справке же английским по белому написано

Код: CreateShortCut "$DESKTOP\Ярлык.lnk" "$INSTDIR\проект.url" "" "x:/path/to/icon.ico"
или
CreateShortCut "$DESKTOP\Ярлык.lnk" "$INSTDIR\проект.url" "" "x:/path/to/file.exe" "номер_иконки_в_файле"

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364

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


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