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.
25-12-2009, 02:12
Отписываю.
Я хотел сделать так, чтобы до выбора одного из вариантов кнопка "далее" была неактивна.
После выбора варианта - активировать кнопку "далее". При нажатии кнопки далее осуществлялся переход на ту или иную страницу в зависимости от выбора.
Проблему решил след. образом »
:drug:
я про это и говорил...или я зря тратил своё время? »
В посте №231 я выложил файл (вложение) "CustomDialog.rar" в котором лежит скрипт, написанный мною с использованием метода InstallOptions показа диалогов, вот я просто и понял, что тратил своё время зря

такой код может быть проще? »
Если честно, я ещё нигде не использовал конструкции с if, мне StrCmp всегда хватало...

У меня будет очень много! Где то 90! »
:o
Ну если бы вы могли объяснить, какая задача перед вами стоит, я возможно бы понял о чем идёт речь...

KSE
25-12-2009, 03:53
Нет не зря. Я очень благодарен. Но в Вашем примере, ув. K.A.V., при нажатии на один из радибуттонов сразу происходит переход на след. страницу

О чем идет речь я объяснить могу, но не хочу вылаживать полностью весь код сюда.
Если можно связаться со мной по асе 3853535, был бы очень признателен так как Ваша не отвечает :)

K.A.V.
25-12-2009, 12:39
Если можно связаться со мной по асе 3853535 »
:o
1. А форум для чего?
2. Вы думаете, что у меня столько свободного времени, что я могу каждому персонально выделять время и общаться он-лайн?

но не хочу вылаживать полностью весь код сюда. »
Мне зачем весь ваш код, вы скажите, что именно хотите сделать вашими "столбиками", которых будет 90

KSE
25-12-2009, 22:17
Ув. 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} работает только с одной переменной

XCV
28-12-2009, 12:34
помогите пожалуйста решить следующую задачу, надо при установке проверить есть ли рядом с инстолятором reg файл, если есть то импортировать его.
и второе проверить есть ли рядом с инстолятором ini файл, если есть скопировать его в папку с установленной программой (по идее это одна и таже задача)

K.A.V.
28-12-2009, 15:26
надо при установке проверить есть ли рядом с инстолятором 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 не надо =) знающие люди хэлпните

K.A.V.
07-01-2010, 10:14
DeleteRegValue HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" "имя проги"

Hector
07-01-2010, 20:50
Есть дистрибутив контры и патч отдельным файлом, решил объединить их при помощи 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

hb860
08-01-2010, 00:38
Попробуйте
ExecWait "$TEMP\CS\cs16full_v4+zbot.exe /sms"
ExecWait "$TEMP\CS\cs16patch_full_v35.exe"

Hector
08-01-2010, 13:38
Результат тотже

hb860
08-01-2010, 13:54
для cs16full_v4+zbot.exe должно быть
ExecWait "$TEMP\CS\cs16full_v4+zbot.exe /s /sms"
/s /sms - это ключи инсталлшилда. Прочитайте это: http://www.oszone.net/display.php?id=2766
Для патча не знаю что и предположить. Расскажите про него - чем он упакован?

Hector
08-01-2010, 14:11
/s /sms пойдет тихая установка, но мне нужно указать директорию. Патч по идее NSIS, вывод из скриншота:
http://www.pictureshack.ru/thumbs/9384cs.jpg (http://www.pictureshack.ru/view_9384cs.jpg)

hb860
08-01-2010, 15:12
Измените страницы скрипта на такие:
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_INSTFILES

и ещё
...
SetAutoClose false
SectionEnd
И посмотрите, что у вас запускается или не запускается.
NSIS в логе напишет, запускается ли установка вообще.

Hector
08-01-2010, 16:30
Отлично, все заработало

Painkiller
09-01-2010, 13:46
hb860, Здравствуйте! Нужна ваша помощь в NSIS. Делаю инсталяшку для плеера. Хочу наладить ассоциацию файлов с ним. Как мне это сделать ? И плизз не могу допереть с выбором компонентов. То есть при выборе чтобы они копировались в папку программы. Если можно на примерчиках . Заранее спасибо!

hb860
09-01-2010, 14:10
ммм, вот этот примерчик подойдет ? - http://forum.oszone.net/thread-101182.html

Painkiller
09-01-2010, 14:24
ммм, вот этот примерчик подойдет ? - http://forum.oszone.net/thread-101182.html »
Я собрал с помощью этого вашего скрипта новую версию AIMP. Но для меня сложноватый скрипт если учесть что я только сегодня начал его изучать. Есть в нем много мелочей , которые я не понимаю с чем они связаны. Мне бы скриптик с выбором компонентов и ассоциацией файлов для начало . Очень хочется научиться !!!

hb860
09-01-2010, 16:24
С выбором компонентов почитайте это (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