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

nRoof
25-08-2009, 18:03
MDinc, да пришлось сталкиваться с таким. Ключи реестра добавлялись на обоих системах, но при деинсталле удалялись только на одной, в зависимости от значения SetRegView. Как проверять разрядность системы нашел поиском на англоязычном форуме винампа.
Добавил такой кусочек кода:
!include "x64.nsh"
${If} ${RunningX64}
SetRegView 64
${Endif}
и все заработало.

Bond01
09-09-2009, 18:36
Подскажите - как задать директорию для программы в меню пуск? например - программа.ехе /S что дальше?

Habetdin
09-09-2009, 18:40
Bond01, вроде бы никак :dont-know
В справке только такие ключи:
/NCRC disables the CRC check, unless CRCCheck force was used in the script.
/S runs the installer or uninstaller silently. See section 4.12 for more information.
/D sets the default installation directory ($INSTDIR), overriding InstallDir and InstallDirRegKey. It must be the last parameter used in the command line and must not contain any quotes, even if the path contains spaces. Only absolute paths are supported.

Bond01
09-09-2009, 18:48
Жалко, я тоже ничего не нашел. Хочу прибраться в меню пуск, а то все программу кто-куда устанавливаются.
А есть русик на сам компилятор, что-то с ним немогу разобраться.

Habetdin
10-09-2009, 17:48
Bond01, http://vadimsva.ucoz.org/NSIS_rus_2.xx.7z

Archius
25-09-2009, 11:29
У NSIS есть поиск по реестру, только чтобы поиск подразделы тоже в себя включал?

K.A.V.
25-09-2009, 20:18
Archius, воспользуйтесь плагином Registry для NSIS
http://nsis.sourceforge.net/Registry_plug-in

SlavikGol
04-10-2009, 04:48
Подскажите пожлуйста как можно сделать инсталяшку на nsis чтоб она инсталировалась у пользователе без прав админа

K.A.V.
04-10-2009, 07:59
SlavikGol, попробуйте добавить в начале кода:
RequestExecutionLevel user

SlavikGol
04-10-2009, 12:31
K.A.V., Продовал при компиляции выдает ошибку
Invalid command: RequestExecutionLevel

K.A.V.
04-10-2009, 18:43
эту строчку надо добавлять перед описанием всех функций, но после инклудинка библиотек, если всё равно ошибки- обновите свою версию NSIS, команда 100% валидная

SlavikGol
05-10-2009, 03:14
K.A.V., Спасибо! Старая версия NSIS стояла

XCV
15-10-2009, 10:25
Может глупые вопросы, но всё же нигде не нашел на них ответ:
1. Можно ли в NSIS сделать так чтобы при установке проги ставился или 1-й её компонент, или 2-й (тоесть при выборе 2-го галочка с 1-го автоматически снималась и наоборот)?
2. Может ли NSIS различать в какой ОС запущен инсталятор и в зависимости от этого выполнять те или иные действия?
3. При создании инстолятора делаю секцию "ярлыки" которая и создает при установке эти самые ярлыки... Создаётся папка с ярлыками в меню пуск в которой ярлычки на некоторые компоненты устанавливаемой проги, если при установке отменить выбор некоторых компонентов то ярлыки на них всё равно создаются, если создавать ярлыки в той же секции где устанавливается сам компонент то пропадает возможность выбора, создавать ярлыки или нет. Можно ли с этим както бороться?
Если у кого-то есть положительные ответы на эти вопросы, то, если можно, дайте пример....
Заранее благодарен всем.

K.A.V.
15-10-2009, 12:47
1. Можно ли в NSIS сделать так чтобы при установке проги ставился или 1-й её компонент, или 2-й (тоесть при выборе 2-го галочка с 1-го автоматически снималась и наоборот)? »
Можно :)

2. Может ли NSIS различать в какой ОС запущен инсталятор и в зависимости от этого выполнять те или иные действия? »
Конечно

3. При создании инстолятора делаю секцию "ярлыки" которая и создает при установке эти самые ярлыки... Создаётся папка с ярлыками в меню пуск в которой ярлычки на некоторые компоненты устанавливаемой проги, если при установке отменить выбор некоторых компонентов то ярлыки на них всё равно создаются, если создавать ярлыки в той же секции где устанавливается сам компонент то пропадает возможность выбора, создавать ярлыки или нет. Можно ли с этим както бороться?
Если у кого-то есть положительные ответы на эти вопросы, то, если можно, дайте пример.... »
Можно, например я делал так: создавал глобальные переменные, если отмечена секция на установку компонента, то глобальной переменной назначается допустим "1", потом в секции "post" просто напросто делаем сравнение значений переменных, если значение переменной "1", то создаём ярлык, если нет, то нет... :)

XCV
15-10-2009, 14:38
Можно »
Конечно »
Можно, например я делал так: создавал глобальные переменные, если отмечена секция на установку компонента, то глобальной переменной назначается допустим "1", потом в секции "post" просто напросто делаем сравнение значений переменных, если значение переменной "1", то создаём ярлык, если нет, то нет... »
если не трудно можно какой либо скрипт для примера?

K.A.V.
15-10-2009, 15:12
Определение операционной системы

; Создаём переменную
var WinVer

; В любой функции вызываем функцию определения ОС
call GetWindowsVersion
; Результат в переменной $WinVer (95, 98, ME, NT, 2000, XP, 2003, Vista, 7)

; Сама функция определения ОС
Function GetWindowsVersion

Push $R0
Push $R1

ClearErrors

ReadRegStr $R0 HKLM \
"SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion

IfErrors 0 lbl_winnt

; we are not NT
ReadRegStr $R0 HKLM \
"SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber

StrCpy $R1 $R0 1
StrCmp $R1 '4' 0 lbl_error

StrCpy $R1 $R0 3

StrCmp $R1 '4.0' lbl_win32_95
StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98

lbl_win32_95:
StrCpy $R0 '95'
Goto lbl_done

lbl_win32_98:
StrCpy $R0 '98'
Goto lbl_done

lbl_win32_ME:
StrCpy $R0 'ME'
Goto lbl_done

lbl_winnt:

StrCpy $R1 $R0 1

StrCmp $R1 '3' lbl_winnt_x
StrCmp $R1 '4' lbl_winnt_x

StrCpy $R1 $R0 3

StrCmp $R1 '5.0' lbl_winnt_2000
StrCmp $R1 '5.1' lbl_winnt_XP
StrCmp $R1 '5.2' lbl_winnt_2003
StrCmp $R1 '6.0' lbl_winnt_vista
StrCmp $R1 '6.1' lbl_winnt_7 lbl_error

lbl_winnt_x:
StrCpy $R0 "NT $R0" 6
Goto lbl_done

lbl_winnt_2000:
Strcpy $R0 '2000'
Goto lbl_done

lbl_winnt_XP:
Strcpy $R0 'XP'
Goto lbl_done

lbl_winnt_2003:
Strcpy $R0 '2003'
Goto lbl_done

lbl_winnt_vista:
Strcpy $R0 'Vista'
Goto lbl_done

lbl_winnt_7:
Strcpy $R0 '7'
Goto lbl_done

lbl_error:
Strcpy $R0 ''
lbl_done:

strcpy $WinVer $R0

Pop $R1
Exch $R0

FunctionEnd


Один компонент для установки

; Секции с компонентами
Section /o "Компонент №1" ID_1
SectionEnd

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

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

Section /o "Компонент №4" ID_4
SectionEnd

Section /o "Компонент №5" ID_5
SectionEnd

Section /o "Компонент №6" ID_6
SectionEnd


; Функция проверки отметки, обязательна
Function .onSelChange

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

; Выбор между компонентам 5 и 6
!insertmacro StartRadioButtons $2
!insertmacro RadioButton ${ID_5}
!insertmacro RadioButton ${ID_6}
!insertmacro EndRadioButtons

FunctionEnd


Создаём ярлыки в зависимости отметки компонета

; Создаём глобальные переменные
var Component_1_is_checked
var Component_2_is_checked
var Component_3_is_checked

; Пошли компоненты
Section /o "Компонент №1" ID_1
strcpy $Component_1_is_checked "1"
SectionEnd

Section /o "Компонент №2" ID_2
strcpy $Component_2_is_checked "1"
SectionEnd

Section /o "Компонент №3" ID_3
strcpy $Component_3_is_checked "1"
SectionEnd


; Пост секция создания ярлыков
Section -Post
StrCmp $Component_1_is_checked "1" 0 no_shortCuts_1
;
; Ярлыки для 1 компонента
;
no_shortCuts_1:
StrCmp $Component_2_is_checked "1" 0 no_shortCuts_2
;
; Ярлыки для 2 компонента
;
no_shortCuts_2:
StrCmp $Component_3_is_checked "1" 0 no_shortCuts_3
;
; Ярлыки для 3 компонента
;
no_shortCuts_3:
SectionEnd

Impeck
16-10-2009, 21:01
Подскажите, как подобную страничку создать?
http://pic.ipicture.ru/uploads/091016/thumbs/f3tU77wwsc.png (http://ipicture.ru/Gallery/Viewfull/25151896.html)

K.A.V.
16-10-2009, 21:17
Impeck, сам показ диалога, картинки и всего текста отображенного на изображении реализовать не составляет никакого труда...для меня :)...но вот какие действия происходят если отмечена галочка "Установить яндекс бар", т.е. что именно выполняется для установки бара, здесь я вам подсказать не смогу (впринципе уже не по теме установка яндекс бара :))...могу лишь помочь вам в создании диалога

Impeck
17-10-2009, 10:00
K.A.V., да это и интересует, с установкой тулбара сам разберусь.

K.A.V.
17-10-2009, 12:00
Судя по скриншоту, мне кажется что использовался инсталлер не от NSIS по некоторым особенностям...
Но всё же, качайте прикреплённый архив, если чего не поймёте - спрашивайте не стесняйтесь ;)




© OSzone.net 2001-2012