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

K.A.V.
15-01-2010, 03:42
У каждого своё понимание "интересного" :)
Много возможностей добавляют плагины (http://nsis.sourceforge.net/Category:Plugins) для NSIS, например...
Мне проще отвечать на вопросы, чем начинать перечисление :)
Так что, с вас вопрос - с меня ответ, возможно это или нет ;) (здесь ещё необходимо учитывать, что я всего про NSIS не знаю :) )

It4a
15-01-2010, 20:45
Добрый вечер. Совсем недавно наткнулся на Nsis выбирая из программ подобного рода, т.к. стояла задача сделать одним файлом инсталлятор. Есть база размер около 4Gb, много файлов, папок, подпапок и т.д.(так же присутствуют програмы без которых она работать не будет или будет, но некорректно). Ограничение в Nsis не более 2 Gb. Как и что будет ставиться и куда распаковываться я уже понял, т.е. осталось решить совсем чуть-чуть.
а. Как сделать что-бы обойти размер в 2 Gb. если нельзя, то как реализовать по другому
b. Защитить от распаковки и просмотра , вроде как это делает DcryptDll Plugin (на данный момент пытаюсь разобраться)
Мелочи:
с. Как изменить цвет текста в BrandingText /TRIMLEFT "Здесь текст"
d. Как изменить цвет галочек(он всегда зелёный) в SectionGroup
f. Как сделать uninstall с таким же скином как и установщик?
Буду благодарен всем ответившим.

K.A.V.
15-01-2010, 21:38
а. Как сделать что-бы обойти размер в 2 Gb »
В голову приходит только 1 мысль, использовать архивы, например 7-ZIP и ZIP
Для распаковки можно использовать плагины. Для 7-ZIP архивов (http://nsis.sourceforge.net/Nsis7z_plug-in), для ZIP архивов (http://nsis.sourceforge.net/ZipDLL_plug-in)

b. Защитить от распаковки и просмотра , вроде как это делает DcryptDll Plugin (на данный момент пытаюсь разобраться) »
Таким вопросом не задавался и с DcryptDll не знакомился, поэтому сказать по данному вопросу ничего не могу :)

с. Как изменить цвет текста в BrandingText /TRIMLEFT "Здесь текст" »
Для выполнения данной операции, сначала необходимо подправить файл диалога, обычно это modern.exe (\Program Files\NSIS\Contrib\UIs), необходимо убрать флаг WS_DISABLED с элемента 1028 (сделать это можно с помощьюю программы ResHacker, ресурс 105)
Затем, перед строкой
!insertmacro MUI_PAGE_WELCOME
добавить
!define MUI_CUSTOMFUNCTION_GUIINIT myGuiInit
а затем, добавить следующий кусок кода в удобное место в скрипте
Function myGuiInit
GetDlgItem $0 $HWNDPARENT 1028
SetCtlColors $0 0xFF0000 transparent
FunctionEnd
в указанном коде указать цвет по HEX значению (заменить FF0000, указанный в коде цвет - красный)

d. Как изменить цвет галочек(он всегда зелёный) в SectionGroup »
Добавить в код
!define MUI_COMPONENTSPAGE_CHECKBITMAP "<путь к файлу с галочками>"
а готовые (и есть парочка на выбор) файлы галочек можно взять из каталога "\Program Files\NSIS\Contrib\Graphics\Checks"

f. Как сделать uninstall с таким же скином как и установщик? »
мм, простите, забыл про деинсталлятор, необходимо добавить следующие функции
Function un.onInit
SetOutPath $TEMP
File /oname=TEST.skf "TEST.skf"
NSIS_SkinCrafter_Plugin::skin /NOUNLOAD "$TEMP\TEST.skf"
FunctionEnd

Function un.onGUIEnd
NSIS_SkinCrafter_Plugin::destroy
FunctionEnd

It4a
16-01-2010, 01:19
Всё получилось, огромное спасибо. Но почему-то деинсталлятор не хочет быть таким как инсталятор, пример который с плагином работает нормуль, а вот у меня не хочет.

Так что бы выбирал пользователь, т.е. буху одно, одному отделу другое и т.д. Соль в том что каждый раз(т.е. 1-2 раз в неделю) устанавливать им это пипец(КАЖДОМУ), а так как все постоянно сносят чего то, то места не хватает, то вирусы, то ещё чего-то. А так будет висеть на сервере общедоступен, клац выбрал, что нужно сиди кури пока ставиться.

K.A.V.
16-01-2010, 01:58
работает нормуль, а вот у меня не хочет. »
:lamer: что-то я не понял...
Но почему-то деинсталлятор не хочет быть таким как инсталятор »
если это про поддержку скина, то возможно, что у вас ошибка в коде, у меня всё нормально, скин подгружается и в инстале и в деинстале

дальше что вы написали, мне не совсем понятно, суть вопроса...даёте четкий вопрос, получаете четкий ответ ;)

It4a
16-01-2010, 02:17
если это про поддержку скина, то возможно, что у вас ошибка в коде, »
ога, было Function .onInit , а правильно Function un.onInit
Так как пишу сам, бывает и ошибаюсь :gulp:
Так ну уже почти всё понятно, вот только осталось немного...как сразу распаковывать, на лету, т.е. из exe файла скомпелированного nsis'ом нужно , что бы сразу распаковывался в С:\Папка, а не переписывался туда архив.7z, распавовывался там , а потом удалялся. Делается это скорее всего каким то ключом, вот тока не могу понять каким.

K.A.V.
16-01-2010, 02:49
да, не читал я документацию на плагин распаковки архивов 7-Zip, неудобный какой-то написали :(
Тогда взамен плагина используйте для распаковки консольную версию архиватора 7-zip, передадите в параметры программы какой архив и в какую папку извлечь ;)

hb860
16-01-2010, 23:52
или 7z sfx, как вариант. Модифицированный модуль вроде переменные окружения поддерживает даже. Его наличие позволило мне отказаться от коммерческого Winrar

eugeny-nn
17-01-2010, 15:36
Добрый день! Ребят, как создать установщик для Adobe Photoshop Elements 8.0 или Adobe Photoshop CS4?? интересует как можно интегрировать серийный ключ продукта.. Может у кого-то есть уже созданные скрипты на основе программ Adobe Photoshop Elements 8.0 или Adobe Photoshop CS4??

It4a
17-01-2010, 21:31
да, не читал я документацию на плагин распаковки архивов 7-Zip, неудобный какой-то написали »
File "ArchiveName.7z"
Nsis7z::Extract "ArchiveName.7z"
Delete "$OUTDIR/ArchiveName.7z"
Засунуть архив.7z в инсталятор(в *.exe), который в свою очередь распакует *.7z в указанное место оттуда извлечёт файлы из архива и *.7z удалит. Не толковый плагин какой-то.
или 7z sfx, как вариант. »
Спасибо прочёл, на будущее буду иметь ввиду.
Подскажите в чём может быть причина RMDir /r $INSTDIR не удаляет папку в которую ставится программа, т.е.
С:\Папка, так и остаётся на диске С:\ после деинсталяции.

Спасибо огромное! Только что всё закончил, правда сыровато, не красиво так как хотелось бы, но главное получилось, осталось за малым.

Habetdin
17-01-2010, 21:34
It4a, Подскажите в чём может быть причина »
Файлы в папке используются системой или какой-либо программой

eugeny-nn, Автоматическая установка Adobe Photoshop CS4 (http://forum.oszone.net/thread-122674.html)

It4a
20-01-2010, 03:10
Подскажите в чём может быть причина RMDir /r $INSTDIR не удаляет папку в которую ставится программа, т.е.
С:\Папка, так и остаётся на диске С:\ после деинсталяции.
Файлы в папке используются системой или какой-либо программой »
Там только uninstall.exe , ну да ладно пёс с этим, есть более насущая проблемма при
CreateDirectory "$SMPROGRAMS\Dir" создаёт в C:\Documents and Settings\Имя пользователя\ папку ├ыртэюх ьхэ■ в ней ╧ЁюуЁрьь√ и только там Dir, а там где нужно(т.е. C:\Documents and Settings\Имя пользователя\Главное меню\Программы - нет.) . Я так понимаю - это проблема с кодировкой, но появилась она после использования 7z плагина, если отключить секцию отвечающую за распаковку, тогда всё норм, но уже поздно, т.к. всё везде настроенно и переделывать я уже чего то просто не в состоянии. Есть у кого какие идеи.

K.A.V.
20-01-2010, 14:58
но появилась она после использования 7z плагина »
Что за плагин? Это который здесь (http://nsis.sourceforge.net/Nsis7z_plug-in)?

It4a
21-01-2010, 02:15
Что за плагин? Это который здесь? »
Да именно он. Очень хочется довести до ума, но чего то я не понимаю.
Вопрос снят, т.к. создание, ярлыков, директорий в меню пуск, должно быть вынесено в отдельную секцию, стоящей перед секцией с распаковкой.
Да и ещё хочу обратить ваше внимание на то что 95% возникающих ошибок из-за невнимательности.

K.A.V.
21-01-2010, 03:06
Плагин вдвойне неудачный...
Как выход из ситуации, прописывайте распаковку после создания директорий :)

Painkiller
21-01-2010, 03:56
K.A.V. , подскажите как заменить картинку в установщике сбоку и сверху ?

K.A.V.
21-01-2010, 04:39
Сверху
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "C:\Program Files\NSIS\Contrib\Graphics\Header\orange-uninstall-nsis.bmp"

Слева
!define MUI_WELCOMEFINISHPAGE_BITMAP "C:\Program Files\NSIS\Contrib\Graphics\Wizard\orange-uninstall.bmp"

dracosha
21-01-2010, 10:31
Один компонент для установки
читать дальше » »

У меня тоже возник этот вопрос... В первом случае у меня стоит птичка на одном из компонентов без возможности ее снятия, а во втором случае хочу что бы можно было птичку снять или хотя бы что бы изначально птичка не стояла...

!include "MUI.nsh"
!include "Sections.nsh"

Name "One Section"
OutFile "one-section_test.exe"
RequestExecutionLevel user

!insertmacro MUI_PAGE_COMPONENTS

SectionGroup "Group 1"

Section "Option 1" g1o1
SectionEnd

Section /o "Option 2" g1o2
SectionEnd

Section /o "Option 3" g1o3
SectionEnd

SectionGroupEnd

SectionGroup "Group 2"

Section /o "Option 1" g2o1
SectionEnd

Section /o "Option 2" g2o2
SectionEnd

Section /o "Option 3" g2o3
SectionEnd

SectionGroupEnd

Function .onInit

StrCpy $1 ${g1o1}
StrCpy $2 ${g2o1}

FunctionEnd


Function .onSelChange

!insertmacro StartRadioButtons $1
!insertmacro RadioButton ${g1o1}
!insertmacro RadioButton ${g1o2}
!insertmacro RadioButton ${g1o3}
!insertmacro EndRadioButtons

!insertmacro StartRadioButtons $2
!insertmacro RadioButton ${g2o1}
!insertmacro RadioButton ${g2o2}
!insertmacro RadioButton ${g2o3}
!insertmacro EndRadioButtons

FunctionEnd


Если закоментировать StrCpy $2 ${g2o1} то происходит какой-то безпредел с 1-й группой компонентов... Я так понимаю что вот это: StrCpy $2 ${g2o1} заставляет ставить галку при первом действии мышкой в любой секции, даже если установлен параметр /o на всех компонентах.
Что делать? Ума не приложу.
Должно же быть что-то подобное этому StrCpy $2 ${g2o1} но только что бы не включало, а наоборот отключало

K.A.V., Помогите плиз

K.A.V.
21-01-2010, 11:55
В первом случае у меня стоит птичка на одном из компонентов без возможности ее снятия »
Это вопрос? Если да, то для того, чтобы сделать секцию не активной для изменения, необходимо в секцию добавить команду
SectionIn RO

честно говоря, я не совсем понял что именно вы хотите...про первый случай я написал, а про второй не совсем понятно, ведь по умолчанию так и есть
птичку снять или хотя бы что бы изначально птичка не стояла »

dracosha
21-01-2010, 12:11
В первом случае меня все полностью устраивает.

А во втором случае мне нужно что бы по умолчанию ни на одном компоненте не стояла галка...
Да. На первый взгляд все вроде в порядке, но все остается в порядке пока не начинаешь выбирать компоненты мышкой... Даже если не трогать компоненты во второй группе, а выбирать компоненты только в первой, то автоматом во второй группе ставится галка.
А я хочу что бы вторая группа оставалась без изменений.
K.A.V., Вы сможете меня понять когда скомпилите этот скрипт который я выложил... Этот скрипт - простой пример и ничего не потребует при компиляции.

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




© OSzone.net 2001-2012