PDA

Показать полную графическую версию : [архив].: NSIS - все вопросы :.


Страниц : 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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170

Krinkels
16-04-2010, 12:16
K.A.V.
Спасибо за совет, вечером обязательно попробую :)

SamLab
20-04-2010, 14:04
hb860, У меня на Windows 7 HP x64 не работает RegDLL

hb860
20-04-2010, 23:01
Похоже, у меня либа просто реганая оставалась. На чистой системе и у меня не работает.
Говорят, regDLL вызывается из 32битного инсталлятора и работать вовсе не должна.
В форумах нсис говорят юзать то, что предложил K.A.V.:
И вот ещё (взял отсюда) попробуйте:
Код:
!define LIBRARY_X64
${If} ${RunningX64}
!insertmacro InstallLib REGDLL NOTSHARED REBOOT_PROTECTED "dll_64.dll" $INSTDIR\dll_64.dll "$INSTDIR"
${Else}
!insertmacro InstallLib DLL NOTSHARED REBOOT_PROTECTED "dll_64.dll" $INSTDIR\dll_64.dll "$INSTDIR"
${Endif}
!undef LIBRARY_X64 »

kotkovets
21-04-2010, 01:06
А как поменять картинку чекбоксов в модуле nsDialogs ?

Sudno
21-04-2010, 20:25
Полный ноль в NSIS, но надо создать инсталлятор. Подскажите пожалуйста:
1) как сделать так чтобы место установки бралось из реестра? т.е. проверялся ключ уже на компьютере где идет установка и в качестве пути по умолчанию предлагался бы найденный в реестре ключ
2) нужно будет создавать патчи, возможно ли такое в NSIS?
3) где можно поменять стандартный текст (типа "Вас приветствует мастер...")?
4) как добавить свою картинку в поле слева (видел такое в разных NSIS'овских инсталлерах)?

NoName01.cpp
22-04-2010, 18:19
Здраствуйте! Инсталлятор должен зарегистрировать службу. Кто-то знает как такое делается на NSIS?

hb860
22-04-2010, 20:20
1) как сделать так чтобы место установки бралось из реестра? т.е. проверялся ключ уже на компьютере где идет установка и в качестве пути по умолчанию предлагался бы найденный в реестре ключ »
в функции .onInit прочитать значение ключа
Function .onInit
ReadRegStr $0 HKCU Software\mysoft "setuppath"
StrCpy $INSTDIR $0
FunctionEnd
2) нужно будет создавать патчи, возможно ли такое в NSIS? »
скажу честно - не знаю насчёт NSIS, обычно такие вещи делаются чем-то другим. Например, патчи ресурсов компилируются Restorator'ом
3) где можно поменять стандартный текст (типа "Вас приветствует мастер...")? »
Из справки:
MUI_WELCOMEPAGE_TITLE title Title to display on the top of the page.
MUI_WELCOMEPAGE_TITLE_3LINES Extra space for the title area.
MUI_WELCOMEPAGE_TEXT text Text to display on the page.
Таким обзразом,
!define MUI_WELCOMEPAGE_TITLE "Заголовок"
!define MUI_WELCOMEPAGE_TEXT "Вас привествует мастер Онотоле. Щас будем мастерить глиняный горшок"как добавить свою картинку в поле слева (видел такое в разных NSIS'овских инсталлерах)? »
Вот тут гляньте c:\Program Files\NSIS\Docs\Modern UI 2\Readme.html
и вот тут http://forums.shoutcast.com/showthread.php?t=208627
Там всё есть.
-------------------------------------------------------
Здраствуйте! Инсталлятор должен зарегистрировать службу. Кто-то знает как такое делается на NSIS? »

Есть офигительный плагин для управления службами (http://nsis.sourceforge.net/NsSCM_plug-in)

Habetdin
22-04-2010, 20:58
как сделать так чтобы место установки бралось из реестра? т.е. проверялся ключ уже на компьютере где идет установка и в качестве пути по умолчанию предлагался бы найденный в реестре ключ »
!define PRODUCT_DIR_REGKEY "Software\Bla-Bla Soft\The Program"

InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "InstallPath"

Section -Post
...
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" "$INSTDIR"
...
SectionEnd

Section Uninstall
...
DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
...
SectionEnd

hb860
23-04-2010, 10:49
Habetdin, сообщение полезное ;)

Цитирую справку:
For more advanced install directory configuration, set $INSTDIR in .onInit.
Я сразу это и предложил.

SamLab
26-04-2010, 11:48
Еще одну проблему обнаружил - на 64-битной семерке не удаляются ярлыки и группа прогаммы из меню Пуск - хотя из папки в каталоге Users линки удаляются, но в самом Пуске они видны - как это победить?

ilias_div
27-04-2010, 11:03
Попробую повторить вопрос от Archius (http://forum.oszone.net/post-1350467-400.html) - ибо тема для меня важная, а ответов так и не было...
В Windows 7, Server 2008 и т.п. в ярлыках приложений во вкладке "совместимость" появилась галочка "Выполнять эту программу от имени администратора". Некоторые мои приложения (например, настройка служб моей системы) без этой галочки работают некорректно - в случае этой утилиты, система отрубает приложению доступ к SCM.
Может ли NSIS создавать ярлыки (в меню пуск, на рабочем столе) - у которых галочка "Выполнять эту программу от имени администратора" будет установлена по умолчанию? Может, есть какие расширения для этого?

hb860
27-04-2010, 15:55
как это победить? »
поставлю х64 - посмотрю
Юр, вот тут глянь http://nsis.sourceforge.net/Shortcuts_removal_fails_on_Windows_Vista
Может ли NSIS создавать ярлыки (в меню пуск, на рабочем столе) - у которых галочка "Выполнять эту программу от имени администратора" будет установлена по умолчанию? Может, есть какие расширения для этого? »
Насколько мне известно, нет

SamLab
28-04-2010, 17:40
hb860, Спасибо - до нынешнего времени интернет был с трафиком и лазять по сетке накладно было и не мог сам найти все это безобразие

Lisabon
01-05-2010, 20:08
hb860, собственно у меня вопрос:

Можно ли в NSIS сделать так, к примеру, у меня есть основная секция, например, PROGRAM_BASE и один дополнительный компонент, напрмер, COMPONENT, который помещён в SectionGroup, сам COMPONENT, будет находится в $EXEDIR\Addition\COMPONENT.exe или в $EXEDIR\COMPONENT.exe, так вот сам вопрос: можно ли в самом начале установки сделать проверку на наличие COMPONENT.exe в $EXEDIR\Addition\ и в $EXEDIR\ , и если этого COMPONENT.exe нет, то скрыть всю SectionGroup, а если этот COMPONENT.exe, есть, то отобразить SectionGroup. Почитав справку, увидел что в SectionGroup нет скрытия как на Section (Section "-Any_Name" или Section # Any_Name), есть какой-то способ, чтоб реализовать мою затею? Если можно напишите небольшой пример...

И ещё, вопрос: можно ли через скрипт изменять размер, например, прогресс бара?

SamLab
03-05-2010, 23:25
hb860, RequestExecutionLevel и SetShellVarContext не помогают и ярлыки из Пуска не удаляются :(

hb860
03-05-2010, 23:54
Завтра у меня будет VAIL x64, я посмотрю на конкретном примере

hb860
04-05-2010, 00:23
И ещё, вопрос: можно ли через скрипт изменять размер, например, прогресс бара? »
посмотрю
На все ваши другие вопросы давно есть ответы тут: http://forums.winamp.com/showthread.php?postid=1765792
Почитав справку, увидел что в SectionGroup нет скрытия как на Section »
Там зато написано что можно рулить флагами, что вам и требуется

Вот вам пример лично от меня:
!include "MUI.nsh"
!include "Sections.nsh"
SetCompressor /SOLID lzma

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

Name "Lisabon"
InstallDir "$TEMP\Lisabon"
OutFile "Lisabon.exe"

Section "CORE" CORE
SetOutPath "$INSTDIR"
File "d:\Test.theme"
SectionEnd

SectionGroup "Some text" sg1
Section "message box" mb
MessageBox MB_OK "simple message box"
SectionEnd
SectionGroupEnd

Function .onInit
IfFileExists "$EXEDIR\Addition\COMPONENT.exe" leavefunc
IfFileExists "$EXEDIR\COMPONENT.exe" leavefunc
IntOp $0 ${sg1} + 1
!insertmacro ClearSectionFlag ${sg1} ${SF_SELECTED}
!insertmacro ClearSectionFlag ${mb} ${SF_SELECTED}
!insertmacro ClearSectionFlag ${sg1} ${SF_SECGRP}
!insertmacro ClearSectionFlag $0 ${SF_SECGRPEND}
SectionSetText ${mb} ""
SectionSetText ${sg1} ""
SectionSetText $0 ""
leavefunc:
FunctionEnd

lmiol
05-05-2010, 11:11
доброго времени суток
я решил скомпилить FirefoxPortable.nsi
но с кое-какими изменениями:
запуск приложения с параметрами и рабочей папкой

параметры в коде указать получилось:
StrCpy $EXECSTRING `"$PROGRAMDIRECTORY\$PROGRAMEXECUTABLE" -app application.ini -override "%APPDATA%\WebApps\quake.live@prism.app\override.ini" -webapp quake.live@prism.app -profile "$PROFILEDIRECTORY"`
Goto CheckMultipleInstances

LaunchProgramParameters:
StrCpy $EXECSTRING `"$PROGRAMDIRECTORY\$PROGRAMEXECUTABLE" -app application.ini -override "%APPDATA%\WebApps\quake.live@prism.app\override.ini" -webapp quake.live@prism.app -profile "$PROFILEDIRECTORY" $0`
Подскажите с рабочей папкой (мб еще плагин какой нада я вот нашел линк (http://nsis.sourceforge.net/ShellExecWait) но сам разобраться не оч выходит)
мая рабочая папка :
"C:\Program Files\FirefoxPrismQuakeLive\Firefox\Data\profile\extensions\refractor@developer.mozilla.org\prism"

ilias_div
05-05-2010, 11:26
Цитата ilias_div:
Может ли NSIS создавать ярлыки (в меню пуск, на рабочем столе) - у которых галочка "Выполнять эту программу от имени администратора" будет установлена по умолчанию? Может, есть какие расширения для этого? »
Насколько мне известно, нет »

Понятно
Впрочем, если кому интересно, проблему запуска программы под семеркой с админскими правами решил с помощью манифеста, как описано здесь (http://krez0n.org.ua/archives/318) или здесь (http://www.heaventools.ru/rt-how-to-add-application-manifest.htm)

hb860
05-05-2010, 13:06
я решил скомпилить FirefoxPortable.nsi »
Зачем?
Простите за оффтом, но вот вам мануал (http://winreview.ru/Soft/405/Portable-Firefox-kak-sdelat-portativnim-populyarnij-brazuer), как сделать это приложение портативным




© OSzone.net 2001-2012