Victor_VG, ваше обновление какое-то стрёмное. Судя по отчёту с VirusTotal, инсталлятор содержит полный набор юного кулхацкера.
» NSIS (Nullsoft Scriptable Install System)
[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]
; 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]
Petrzhukv
4.5.3 Callbacks в мануале
На страницу выбора пути поставить колбэк, где обработать свой вариант.
Примерно так:
Код: Page directory PreDirectoryCallbackFunction
Function PreDirectoryCallbackFunction
IfFileExists "x:\путь\файлизпрограммы" 0 +3
StrCpy $INSTDIR "x:\путь"
Abort
FunctionEnd
4.5.3 Callbacks в мануале
На страницу выбора пути поставить колбэк, где обработать свой вариант.
Примерно так:
Код: Page directory PreDirectoryCallbackFunction
Function PreDirectoryCallbackFunction
IfFileExists "x:\путь\файлизпрограммы" 0 +3
StrCpy $INSTDIR "x:\путь"
Abort
FunctionEnd
Благодарствую, пошол пытать.
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)
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)
Релиз вышел - NSIS 3.0
В колбэке страницы instfiles прячу кнопку "< назад"
Код: GetDlgItem $1 $HWNDPARENT 3 ;back button
ShowWindow $1 ${SW_HIDE}
Код: GetDlgItem $1 $HWNDPARENT 3 ;back button
ShowWindow $1 ${SW_HIDE}
iglezz
Цитата:
Где появляется ? Если на финишной странице, то конечно появляется. Надо эту кнопку убирать на каждой странице.
Цитата:
В колбэке страницы instfiles прячу кнопку "< назад"
после завершения установки эта кнопка опять появляется
Где появляется ? Если на финишной странице, то конечно появляется. Надо эту кнопку убирать на каждой странице.
MKN
Кнопка становится видимой после выхода со страницы instfiles даже если она изначально была спрятана.
Вот минималистичный [more=пример]
Код: OutFile "${__FILE__}.exe"
RequestExecutionLevel "user"
Page instfiles "" "" inst_exit
Function inst_exit
Messagebox MB_OK "instfiles exit"
FunctionEnd
Section
SectionEnd
Кнопка становится видимой после выхода со страницы instfiles даже если она изначально была спрятана.
Вот минималистичный [more=пример]
Код: OutFile "${__FILE__}.exe"
RequestExecutionLevel "user"
Page instfiles "" "" inst_exit
Function inst_exit
Messagebox MB_OK "instfiles exit"
FunctionEnd
Section
SectionEnd
iglezz
Правильно, т.к. каждая страница обрабатывается индивидуально. Иначе теряется гибкость кода.
Правильно, т.к. каждая страница обрабатывается индивидуально. Иначе теряется гибкость кода.
Где же тут гибкость, если до этих кнопок на этой финальной стадии не дотянуться?
iglezz
А если вместо стандартной финальной страницы написать свою? NSIS ведь это допускает. А по поводу гибкости - если сравнить к примеру Inno Setup или Wise Install Maker с NSIS то в первых вставить в код свой алгоритм не сильно выйдет. В Inno вылезут ограничения Паскаля, а Wise насколько я помню тот вариант середины 90-х с которым работал всё было жёстко регламентировано реализованным в среде набором инструментов, и коли надо сделать что-то, что в среде отсутствует - переписывай всю среду с нуля.
А если вместо стандартной финальной страницы написать свою? NSIS ведь это допускает. А по поводу гибкости - если сравнить к примеру Inno Setup или Wise Install Maker с NSIS то в первых вставить в код свой алгоритм не сильно выйдет. В Inno вылезут ограничения Паскаля, а Wise насколько я помню тот вариант середины 90-х с которым работал всё было жёстко регламентировано реализованным в среде набором инструментов, и коли надо сделать что-то, что в среде отсутствует - переписывай всю среду с нуля.
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
Убрать кнопку "< Назад" на всех страницах можно вот-так:
Код: 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
Sanch8
Спасибо!
Предполагал такой вариант, но не мог сообразить как это пишется..
Спасибо!
Предполагал такой вариант, но не мог сообразить как это пишется..
Всем доброго дня.
Подскажите пожалуйста как реализовать запуск двух файлов, которые входят в инсталятор.
Написал вызов функции :
!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
Заранее благодарю.
Подскажите пожалуйста как реализовать запуск двух файлов, которые входят в инсталятор.
Написал вызов функции :
!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
Заранее благодарю.
Pereplet74
А вызвать их из секции POST через nsExec | ExecWait не пробовали?
А вызвать их из секции POST через nsExec | ExecWait не пробовали?
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"
так не работает :\
нужно к ярлыку прикрутить запуск сервера.
Не могу решить последнюю задачу, как запустить jar файл от имени администратора, на который создается ссылка на рабочем столе.
CreateShortCut "$DESKTOP\КРОС.lnk" "$INSTDIR\smpo-server\server.jar"
через командную строку могу вызывать java -jar url
а как тут не соображу, нид хелп!!!
!define MUI_FINISHPAGE_RUN "java -jar $INSTDIR\smpo-server\smpo-server.jar"
так не работает :\
нужно к ярлыку прикрутить запуск сервера.
Pereplet74
1) а зачем звать через run? nsExec передаст командную строку java.exe и она запустит свой jar. Но командная строка вызова должна быть в кавычках чтобы воспринималась как один аргумент или компилятор выведет сообщение об ошибке....
1) а зачем звать через run? nsExec передаст командную строку java.exe и она запустит свой jar. Но командная строка вызова должна быть в кавычках чтобы воспринималась как один аргумент или компилятор выведет сообщение об ошибке....
Pereplet74
Тут может помочь хедер от K.A.V:
Код: !include "adminShortCut.nsh"
CreateShortCut "$DESKTOP\КРОС.lnk" "$INSTDIR\smpo-server\server.jar"
${aSC::SetON} "$DESKTOP\КРОС.lnk" ; Запуск от имени администратора
Тут может помочь хедер от K.A.V:
Код: !include "adminShortCut.nsh"
CreateShortCut "$DESKTOP\КРОС.lnk" "$INSTDIR\smpo-server\server.jar"
${aSC::SetON} "$DESKTOP\КРОС.lnk" ; Запуск от имени администратора
Sanch8
Только скачать с осзоне можно только после логона:
Цитата:
а если кто там логин не заводил за не нужностью? Заводить аккаунт на сотнях сайтов ради одного хидера? Так что ваше упоминание можно трактовать и как рекламу постороннего ресурса со сманиванием пользователей. А оно вам надо?
Только скачать с осзоне можно только после логона:
Цитата:
Системное сообщение
Вы не авторизованы на форуме или не имеете доступа к этой странице. Это могло произойти по одной из нескольких причин:
а если кто там логин не заводил за не нужностью? Заводить аккаунт на сотнях сайтов ради одного хидера? Так что ваше упоминание можно трактовать и как рекламу постороннего ресурса со сманиванием пользователей. А оно вам надо?
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
[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
Sanch8
Спасибо! При случае пригодится.
Спасибо! При случае пригодится.
А вообще что бы обойти все эти подводные камни, кто-нибудь знает как произвести установку от имени администратора? =)
Pereplet74
Цитата:
В скрипте :
Код: RequestExecutionLevel admin
Цитата:
как произвести установку от имени администратора?
В скрипте :
Код: RequestExecutionLevel admin
[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]
Вот скажите мне, есть ли команда что бы создать ярлык с иконкой?
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]
Pereplet74
В справке же английским по белому написано
Код: CreateShortCut "$DESKTOP\Ярлык.lnk" "$INSTDIR\проект.url" "" "x:/path/to/icon.ico"
или
CreateShortCut "$DESKTOP\Ярлык.lnk" "$INSTDIR\проект.url" "" "x:/path/to/file.exe" "номер_иконки_в_файле"
В справке же английским по белому написано
Код: 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, истории становления российского интернета. Сделано для людей.