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

hb860
02-03-2010, 23:20
CyberMaster,
File /r "Папка для упаковки\*.*"
Всё что вам нужно - это дописать /r после слова File.

CyberMaster
03-03-2010, 07:02
K.A.V., hb860, большое спасибо!
И еще один глупый вопрос :) Как изменить иконку деинсталлятора?

hb860
03-03-2010, 10:28
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"

MUI_ICON - это иконка инсталлятора,
MUI_UNICON - иконка деинсталлятора

Вы, например, можете использовать такой вариант:
!define MUI_ICON "d:\Мои иконки\windows.ico"

McG
05-03-2010, 15:11
Подскажите кто нибудь как сделать картинку фона при инсталляции? (Смотрел пример в папке Examples но нифига не понял)
И еще такой вопрос, можно ли сделать музыку при инсталляции и если можно то как?

K.A.V.
05-03-2010, 17:03
McG

В начале кода
!define MUI_CUSTOMFUNCTION_GUIINIT myGuiInit

В любом месте кода
Function myGuiInit
BgImage::SetBg "D:\...\...\bground.bmp"
BgImage::Redraw
BgImage::Sound "D:\...\...\song.wav"
FunctionEnd

hb860
06-03-2010, 00:13
K.A.V., включи в учебник

CyberMaster
06-03-2010, 03:34
Перепробовал штук 20 скинов SkinCrafter Plugin и не один не работает, кроме Skinastic.skf. С чем это связано и можно ли решить данную проблему?

K.A.V.
06-03-2010, 04:23
CyberMaster, шапка данной темы обязательна для прочтения

Расширение функциональности -> Интерфейс SkinCrafter Plugin -> Инструкция по использованию от K.A.V. (http://forum.oszone.net/post-1317606-267.html)

McG
06-03-2010, 06:12
K.A.V., я так понимаю сначала звук и картинку нужна распаковать в папку TEMP а потом читать их оттуда функцией BgImage. А как так сделать чтоб при запуске инсталлятора сразу само распаковывались звук и картинка в папку TEMP а по окончанию действий инсталлятора удалялись оттуда?

CyberMaster
06-03-2010, 06:16
K.A.V., да я читал это естественно. И библиотеку которую вы давали тоже юзал (собственно на другой библиотеке вообще не один скин не грузится).

K.A.V.
06-03-2010, 06:32
McG
Файлы bground.bmp и song.wav должны находиться в одной папке с вашим скриптом
Function myGuiInit
File /oname=$TEMP\bground.bmp bground.bmp
File /oname=$TEMP\song.wav song.wav
BgImage::SetBg "$TEMP\bground.bmp"
BgImage::Redraw
BgImage::Sound "$TEMP\song.wav"
FunctionEnd

Function .onGUIEnd
Delete "$TEMP\bground.bmp"
Delete "$TEMP\song.wav"
FunctionEnd


CyberMaster, вот вам моя (http://winxpregp.narod.ru/NSIS/K.A.V._SkinCrafter.rar) библиотека, качал не помню когда, удалил парочку ресурсов, тем самым размер сократился с 5 Мб до 300 Кб, функционал не поврежден :)
Подгружаются все скины (по крайней мере какие я тестировал, а их примерно штук 20 было :) )
Забыл, обращаться с вызовом функции нужно к System.dll

ant20
15-03-2010, 13:45
Это реально сделать, если да то подскажите плз как.

Производим вызов файла инсталятора с различными параметрами. Внутри инсталера в зависимости от значений параметров производится дальнейшая установка.

K.A.V.
15-03-2010, 18:22
ant20

В начале кода
!include "FileFunc.nsh"

Затем
Function .onInit
${GetParameters} $R0

${GetOptions} "$R0" "/Test" $R1
IfErrors +2 0
call MyFunc1
FunctionEnd

Вся командная строка помещается в переменную $R0
Функция GetOptions определяет 1 параметр и его значение (если есть), например, командная строка инсталлятора:
C:\Install.exe /Silent /Test 12345 /OtherPar
при вызове функции с параметром /Test в переменную $R1 поместится текст 12345, т.к. после параметра ему указанно значение, если данный параметр будет указан (вне зависимости от значения), то будет выполнена функция MyFunc1

hb860
15-03-2010, 18:51
ant20, посмотрите пример в топике про оперу. Я там как раз разбираю командную строку, http://forum.oszone.net/thread-49157.html

А вообще, принцип тот же, что описал выше уважаемый (как минимум мной) K.A.V..

GAleM
18-03-2010, 17:35
Подскажите пожалуйста, как сделать следующее.
Можно ли сделать, чтобы в зависимости от выбранного пользователем языка, при запуске инсталлятора, был установлен тот или иной файл?

Конкретнее, есть русская программа, она была переведена на английский, все сопутствующие с ней файлы остались прежними - изменился только exe'файл программы. Цель добавить в дистрибутив файлы "Программа_rus.exe" и "Программа_eng.exe", и в зависимости от выбранного языка инстяллятора один из этих файлов будет установлен с именем "Программа.exe".

hb860
19-03-2010, 08:35
Можно
Section "!${PRODUCT_NAME}" secOPERA
SetOutPath "$INSTALLDIR"
File "$(File_Ru)"
File "Все остальные файлы"
.....
......
......
SectionEnd
............
LangString File_Ru ${LANG_RUSSIAN} "d:\мой русский.ехе"
LangString File_En ${LANG_RUSSIAN} "d:\мой английский.ехе"
Или
Section "!${PRODUCT_NAME}" secOPERA
SetOutPath "$INSTALLDIR"
File /r /x "программа.exe" "d:\файлы программы\*.*"
File /oname "программа.exe" $(File_Ru)
.....
......
......
SectionEnd
............
LangString File_Ru ${LANG_RUSSIAN} "d:\мой русский.ехе"
LangString File_En ${LANG_RUSSIAN} "d:\мой английский.ехе"
Вот по такому принципу

kotkovets
19-03-2010, 13:25
Подскажите пожалуйста,как реализовать выбор одного компонента исключающий выбор других компонентов в пределах одной секционной группы компонентов? т.е:

SectionGroup "A"

Section 1
SectionEnd

Section 2
SectionEnd

Section 3
SectionEnd

SectionGroupEnd

K.A.V.
19-03-2010, 13:39
Можно ли сделать, чтобы в зависимости от выбранного пользователем языка, при запуске инсталлятора, был установлен тот или иной файл? »
hb860, можно сделать проще :)
В переменной $LANGUAGE хранится ID выбранного языка (1033 - выбрали английский, 1049 - выбрали русский), поэтому распаковку файла можно реализовать гораздо проще:


Section "Моя программа"
SetOutPath $INSTDIR
StrCmp $LANGUAGE "1049" 0 +3
File /oname="$INSTDIR\Program.exe" "Rus.exe"
goto +2
File /oname="$INSTDIR\Program.exe" "Eng.exe"
SectionEnd


kotkovets, видите ссылку в моей подписи? Справочник по NSIS (http://forum.oszone.net/thread-168287.html)
Там описано, и в этой теме в доль и поперёк уже разжевали до немогу работу с секциями

Имейте совесть, ну пожалуйста, мы уже даже не направляем никого в файл помощи NSIS, мы просим вас хотя бы прочитать наш справочник на русском языке, это не совсем дико звучит?

hb860, оформи ссылку на справочник в шапку темы, выделив его жирным красным цветом :)
И шрифт примерно на 72 сделать, чтобы все увидили :biggrin:

совсем все обленились, даже лень русский help почитать...

kotkovets
19-03-2010, 14:24
За справочник спасибо! но, когда отметишь группу А, отмечаются два компонента или все, а нужно только один компонент или снять все компонеты.

SectionGroup /e A
;file
Section "Компонент №1" ID_1
SectionEnd

Section /o "Компонент №2" ID_2
SectionEnd

Section /o "Компонент №3" ID_3
SectionEnd

SectionGroupend

Function .onSelChange

; Выбор между компонентам 1, 2, 3
!insertmacro StartRadioButtons $1
!insertmacro RadioButton ${ID_1}
!insertmacro RadioButton ${ID_2}
!insertmacro RadioButton ${ID_3}
!insertmacro EndRadioButtons

FunctionEnd

Function .onInit

StrCpy $1 ${ID_1}

FunctionEnd

K.A.V.
20-03-2010, 07:48
kotkovets, я из принципа вам сейчас не дам готовый ответ, ведь я не зря вам написал:
и в этой теме в доль и поперёк уже разжевали до немогу работу с секциями »
Это уже обсуждалось не раз, а то, что вам лень почитать посты в данной теме для решения вашей задачи - дело ваше
Если честно, утомляет отвечать (и искать за вас нужные посты) по несколько раз на одни и те же ответы, когда готовый ответ уже есть в этой теме




© OSzone.net 2001-2012