Показать полную графическую версию : [архив].: NSIS - все вопросы :.
Отписываю.
Я хотел сделать так, чтобы до выбора одного из вариантов кнопка "далее" была неактивна.
После выбора варианта - активировать кнопку "далее". При нажатии кнопки далее осуществлялся переход на ту или иную страницу в зависимости от выбора.
Проблему решил след. образом »
:drug:
я про это и говорил...или я зря тратил своё время? »
В посте №231 я выложил файл (вложение) "CustomDialog.rar" в котором лежит скрипт, написанный мною с использованием метода InstallOptions показа диалогов, вот я просто и понял, что тратил своё время зря
такой код может быть проще? »
Если честно, я ещё нигде не использовал конструкции с if, мне StrCmp всегда хватало...
У меня будет очень много! Где то 90! »
:o
Ну если бы вы могли объяснить, какая задача перед вами стоит, я возможно бы понял о чем идёт речь...
Нет не зря. Я очень благодарен. Но в Вашем примере, ув. K.A.V., при нажатии на один из радибуттонов сразу происходит переход на след. страницу
О чем идет речь я объяснить могу, но не хочу вылаживать полностью весь код сюда.
Если можно связаться со мной по асе 3853535, был бы очень признателен так как Ваша не отвечает :)
Если можно связаться со мной по асе 3853535 »
:o
1. А форум для чего?
2. Вы думаете, что у меня столько свободного времени, что я могу каждому персонально выделять время и общаться он-лайн?
но не хочу вылаживать полностью весь код сюда. »
Мне зачем весь ваш код, вы скажите, что именно хотите сделать вашими "столбиками", которых будет 90
Ув. K.A.V., я с Вами полностью согласен.
И так, предыдущая проблема была решена. Как оказалось все оч. просто
Это правильный код:
${If} $mon == 1
${If} $2 == 1
${If} $R1 == 1
StrCpy $freq "60"
${EndIf}
${If} $R2 == 1
StrCpy $freq "75"
${EndIf}
${EndIf}
{If} $3 == 1
${If} $R1 == 1
StrCpy $freq "65"
${EndIf}
${If} $R2 == 1
StrCpy $freq "85"
${EndIf}
${EndIf}
${ElseIf} $mon == 2
${If} $2 == 1
${If} $R1 == 1
StrCpy $freq "55"
${EndIf}
${If} $R2 == 1
StrCpy $freq "45"
${EndIf}
${EndIf}
${If} $3 == 1
${If} $R1 == 1
StrCpy $freq "35"
${EndIf}
${If} $R2 == 1
StrCpy $freq "25"
${EndIf}
${EndIf}
${EndIf}
Это неправильный код (моя ошибка была след.):
${If} $mon == 1
${If} $2 == 1
${If} $R1 == 1
StrCpy $freq "60"
${EndIf}
${If} $R2 == 1
StrCpy $freq "75"
${EndIf}
{ElseIf} $3 == 1 ; Это делать нельзя!
${If} $R1 == 1
StrCpy $freq "65"
${EndIf}
${If} $R2 == 1
StrCpy $freq "85"
${EndIf}
${EndIf}
${ElseIf} $mon == 2
${If} $2 == 1
${If} $R1 == 1
StrCpy $freq "55"
${EndIf}
${If} $R2 == 1
StrCpy $freq "45"
${EndIf}
${EsleIf} $3 == 1 Это делать нельзя!
${If} $R1 == 1
StrCpy $freq "35"
${EndIf}
${If} $R2 == 1
StrCpy $freq "25"
${EndIf}
${EndIf}
${EndIf}
Этого делать нельзя!
${If} $0 == 1
...
${ElseIf} $1 == 1
...
${EndIf}
Можно так
${If} $0 == 1
...
${EndIf}
${If} $1 == 1
...
${EndIf}
${ElseIf} работает только с одной переменной
помогите пожалуйста решить следующую задачу, надо при установке проверить есть ли рядом с инстолятором reg файл, если есть то импортировать его.
и второе проверить есть ли рядом с инстолятором ini файл, если есть скопировать его в папку с установленной программой (по идее это одна и таже задача)
надо при установке проверить есть ли рядом с инстолятором reg файл, если есть то импортировать его. »
IfFileExists "$EXEPATH\MyFile.reg" 0 +2
execwait `$WINDIR\regedit.exe /s "$EXEPATH\MyFile.reg"`
и второе проверить есть ли рядом с инстолятором ini файл, если есть скопировать его в папку с установленной программой »
IfFileExists "$EXEPATH\MyFile.ini" 0 +2
copyfiles /silent "$EXEPATH\MyFile.ini" "$INSTDIR"
FuckToAll
07-01-2010, 07:26
как удалить ключь автозагрузки при деинсталяции? например:
HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" "имя проги" "$INSTDIR\прога.exe"
я делал так, но не робит:
DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" "имя проги" "$INSTDIR\прога.exe"
в скриптах, которые я ковырял удаляется ветка целеком, например:
DeleteRegKey HKLM "${PRODUCT_UNINST_KEY}"
но в маём случае полностью сносить Run не надо =) знающие люди хэлпните
DeleteRegValue HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" "имя проги"
Есть дистрибутив контры и патч отдельным файлом, решил объединить их при помощи NSIS, но вот проблема: установка не работает, отрабатывает только NSIS, а установочник и патч не запускаются. В чем проблема?
;имя приложения
!define PRODUCT_NAME "Counter-Strike"
;версия приложения
!define PRODUCT_VERSION "1.6"
; название в панели задач
Name "${PRODUCT_NAME}"
; заголовок окна
Caption "Установка ${PRODUCT_NAME} ${PRODUCT_VERSION}"
; выходной файл
OutFile "cs16full_v35.exe"
;настройка интерфейса
!include "MUI.nsh"
!define MUI_ABORTWARNING
!define MUI_ICON "E:\Program Files\Counter-Strike\cstrike-16.ico"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE "Russian"
VIProductVersion "1.9.9.1"
VIAddVersionKey /LANG=${LANG_RUSSIAN} "ProductName" "Counter-Strike 1.6"
VIAddVersionKey /LANG=${LANG_RUSSIAN} "CompanyName" "GGMC"
VIAddVersionKey /LANG=${LANG_RUSSIAN} "FileDescription" "Установщик Counter-Strike 1.6"
; установка
Section
SetOutPath "$TEMP\CS"
file "D:\Home\Нужный хлам\CS\cs16full_v4+zbot.exe"
file "D:\Home\Нужный хлам\CS\cs16patch_full_v35.exe"
ExecWait "cs16full_v4+zbot.exe /sms"
SetShellVarContext all
Delete "$Desktop\Counter Strike 1.6.lnk"
ExecWait "cs16patch_full_v35.exe"
RmDir /r "$TEMP\CS"
SectionEnd
Попробуйте
ExecWait "$TEMP\CS\cs16full_v4+zbot.exe /sms"
ExecWait "$TEMP\CS\cs16patch_full_v35.exe"
для cs16full_v4+zbot.exe должно быть
ExecWait "$TEMP\CS\cs16full_v4+zbot.exe /s /sms"
/s /sms - это ключи инсталлшилда. Прочитайте это: http://www.oszone.net/display.php?id=2766
Для патча не знаю что и предположить. Расскажите про него - чем он упакован?
/s /sms пойдет тихая установка, но мне нужно указать директорию. Патч по идее NSIS, вывод из скриншота:
http://www.pictureshack.ru/thumbs/9384cs.jpg (http://www.pictureshack.ru/view_9384cs.jpg)
Измените страницы скрипта на такие:
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_INSTFILES
и ещё
...
SetAutoClose false
SectionEnd
И посмотрите, что у вас запускается или не запускается.
NSIS в логе напишет, запускается ли установка вообще.
Painkiller
09-01-2010, 13:46
hb860, Здравствуйте! Нужна ваша помощь в NSIS. Делаю инсталяшку для плеера. Хочу наладить ассоциацию файлов с ним. Как мне это сделать ? И плизз не могу допереть с выбором компонентов. То есть при выборе чтобы они копировались в папку программы. Если можно на примерчиках . Заранее спасибо!
ммм, вот этот примерчик подойдет ? - http://forum.oszone.net/thread-101182.html
Painkiller
09-01-2010, 14:24
ммм, вот этот примерчик подойдет ? - http://forum.oszone.net/thread-101182.html »
Я собрал с помощью этого вашего скрипта новую версию AIMP. Но для меня сложноватый скрипт если учесть что я только сегодня начал его изучать. Есть в нем много мелочей , которые я не понимаю с чем они связаны. Мне бы скриптик с выбором компонентов и ассоциацией файлов для начало . Очень хочется научиться !!!
С выбором компонентов почитайте это (http://winreview.ru/news.php?extend.47.11).
Регистрация ассоциаций:
!macro RegisterExtension extenstion
WriteRegStr HKCR ".${extenstion}" "" "Winamp.File"
WriteRegStr HKCR "Winamp.File" "" "Winamp Media File"
WriteRegStr HKCR "Winamp.File\DefaultIcon" "" "$INSTDIR\winamp.exe,1"
WriteRegStr HKLM "Winamp.File\shell" "" "Play"
WriteRegStr HKLM "Winamp.File\shell\Play" "" "&Play in Winamp"
WriteRegStr HKCR "Winamp.File\shell\Play\command" "" "$\"$INSTDIR\winamp.exe$\" $\"%1$\""
WriteRegStr HKCR "Winamp.File\shell\open\command" "" "$\"$INSTDIR\winamp.exe$\" $\"%1$\""
WriteRegStr HKLM "Winamp.File\shell\ListBookmark" "" "Add to Winamp's &Bookmark list"
WriteRegStr HKLM "Winamp.File\shell\ListBookmark\command" "" "$\"$INSTDIR\winamp.exe$\"/BOOKMARK $\"%1$\""
WriteRegStr HKLM "Winamp.File\shell\Enqueue" "" "&Enqueue in Winamp"
WriteRegStr HKLM "Winamp.File\shell\Enqueue\command" "" "$\"$INSTDIR\winamp.exe$\"/ADD $\"%1$\""
!macroend
Section "Программа" SEC01
...
!insertmacro RegisterExtension MP3
!insertmacro RegisterExtension MP2
!insertmacro RegisterExtension MP1
!insertmacro RegisterExtension OGG
!insertmacro RegisterExtension WAV
...
SectionEnd
Painkiller
10-01-2010, 16:46
hb860, Ваши уроки очень помогли. Надеюсь они не последние. У меня ещё один вопросик , как шкуру надеть ?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC