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

kotkovets
26-01-2012, 09:18
Для практики. И не доверяю я этим ключам. Кто его знает, что там написано »
не доверять AIMP3 ???
Вы проверьте, особенно ассоциации...
Все работает. Проблему наблюдаю только с регистрацией библиотеки
RegDLL "$INSTDIR\Modules\aimp_menu32.dll »
А регистрацию/разрегистрацию библиотеки тоже не верите? :)
Люди которые AIMP разработали далеко не дураки...и прекрасно понимают, что нужно пользователю.

wolkow70
26-01-2012, 10:12
kotkovets,

Кажется такая конструкция (подсмотрел в справке) не совсем оптимальна, приходится дублировать код YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

${If} ${RunningX64}
;========УСТАНОВКА НА 64-БИТНЫЕ СИСТЕМЫ==========
SetRegView 64
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SetRegView 32
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
${Else}
;=======УСТАНОВКА НА 32-БИТНЫЕ СИСТЕМЫ===========
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
${EndIf}

kotkovets
26-01-2012, 11:19
Кажется такая конструкция (подсмотрел в справке) не совсем оптимальна, приходится дублировать код »
SetRegView 32 в x64 нужно (по умолчанию) возвратить в большинстве случаев, поэтому
общие команды нужно писать вне конструкции - это очевидно.
приходится дублировать код »
Про дублирование кода уже не раз говорил - переносите код в функцию или в макрос,
все зависит от поставленной задачи, речь тут только о пользовательской оптимизации,
которая еще зависит от знаний/опыта разработчика.

wolkow70
26-01-2012, 11:27
SetRegView 32 в x64 нужно (по умолчанию) возвратить в большинстве случаев, поэтому
общие команды нужно писать вне конструкции - это очевидно. »

Не совсем понял как это? В справке про это не написано...
То есть в начале ставить SetRegView 32, а после SetRegView 64?

Перед ReadRegStr тоже ставить SetRegView 64, если нужно прочесть значение из родного раздела на запущенной X64?

kotkovets
26-01-2012, 12:29
Не совсем понял как это? В справке про это не написано... »
Справка - это как использовать инструмент.
Использование инструмента - дело опыта. В x64 большинство веток идентичны в х86,
Поэтому NSIS по умолчанию предоставляет 32-разрядный вид реестра, все зависит от
конкретно устанавливаемой и как требования предъявляет программа.
Для того - в основном инсталлятор служит - прогибаться под установку программы, а не наоборот.

wolkow70
26-01-2012, 12:46
Поэтому NSIS по умолчанию предоставляет 32-разрядный вид реестра »

Эксперементально в этом убедился.
Перед ReadRegStr тоже ставить SetRegView 64, если нужно прочесть значение из родного раздела на запущенной X64? »
Тоже эксперементально убедился, что нужно.

Paval
26-01-2012, 12:50
Вот и спрашивай потом.)) Рассказали все то, что я и так уже знал и сделал. Вопрос был, можно ли узнать версию устанавливаемой программы ДО ее установки на компьютер и без хардкода.
Я же писал, что в сам скрипт версию руками писать нельзя. А мне потом выдают во это !define version "1.1.3" ;исходно устанавлимая версия .

P.S. Все оказалость проще. Билд машина параметром через командную строку передаст версию в мой скрипт.

funtykin
26-01-2012, 13:59
Здравствуйте!
надо к уже имеющемуся инсталятору добавить возможность обновления.

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

!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY


просто смысла нету их повторно показывать так как эти параметры не меняются.

как так сделать?

Заранее спасибо!

Paval
26-01-2012, 16:31
Здравствуйте!
надо к уже имеющемуся инсталятору добавить возможность обновления.
при запуске я спокойно определяю что уже имеется ранее установленная версия ПО.
и если оно уже присутствует хотелось бы пропустить несколько стандартных окон таких как
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
просто смысла нету их повторно показывать так как эти параметры не меняются.
как так сделать?
Заранее спасибо! »
http://stackoverflow.com/questions/2776358/nsis-skip-pages-at-runtime
http://forums.winamp.com/showthread.php?t=203961

kotkovets
26-01-2012, 19:01
хотелось бы пропустить несколько стандартных окон таких как »
я делал как то так:
http://nsis.sourceforge.net/Go_to_a_NSIS_page
http://forum.ru-board.com/topic.cgi?forum=5&topic=0595&start=1146&limit=1&m=1#1
под свою задачу не трудно заточить.
http://stackoverflow.com/questions/2...ges-at-runtime
http://forums.winamp.com/showthread.php?t=203961 »
мутно...

diakov
29-01-2012, 14:39
Доброго времени суток господа!kotkovets, такой вопрос модно ли сделать что б когда наводиш курсором на радиобутон впливал коментарий как html?

kotkovets
29-01-2012, 22:37
такой вопрос модно ли сделать что б когда наводиш курсором на радиобутон впливал коментарий как html? »
как html врядли... пробывал не получалось, весьма трудоемко...
а вот есть ToolTips (http://nsis.sourceforge.net/ToolTips_plug-in) - всплывающие сообщения (тултипы)
Если нужно могу выложить рабочие варианты без плагина(без описания с примерами),
плагин не позволяет вставить в символ перевода строки, при длинном тексте это весьма раздражает.

diakov
30-01-2012, 11:07
kotkovets, вот задался идеей сбацать репак Alcohol. Как мона сделать так что бы например сначала установился драйвер SPTD 1.80, потом перегрузка компа а потом старт инсталятора и уже установка самой программы...или еще как то моно подскажи! Спасибо!

kotkovets
30-01-2012, 11:54
так что бы например сначала установился драйвер SPTD 1.80, »
Вам нужно сначала проверить установлен ли драйвер, по реестру или на определенный файл, где именно смотреть я не помню...
Если установлен драйвер, то устанавливать Alcohol.
Если не установлен драйвер, то установить драйвер и перезагрузиться обязательно.
Перед перезагрузкой прописать в реестр однократный запуск инсталлятора - для удобства.
Смотрите на 82 страничке темы, там такой похожий вопрос был.(812 сообщение)

diakov
30-01-2012, 12:19
Сам драйвер расположен тут C:\Windows\System32\drivers sptd.sys

shtuceron
30-01-2012, 15:08
Здравствуйте,

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

Моя программа состоит из нескольких частей, которые можно выбрать для инсталляции, я их помещаю в секции, как можно прописать путь инсталляции для каждой секции и не показывать его если секции не выбрана?

Спасибо.

Drongo
30-01-2012, 15:13
.: NSIS - все вопросы :. (http://forum.oszone.net/thread-67386.html)

kotkovets
30-01-2012, 17:35
Сам драйвер расположен тут C:\Windows\System32\drivers sptd.sys »
Можно примерно вот так:
!include "logiclib.nsh"
;--
Section
${IfNot} ${FileExists} "$SYSDIR\drivers\sptd.sys" ;если нет этого файла, то...
;команды установки драйвера
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" "AlcogolSoft" '"$EXEPATH"'
MessageBox MB_OKCANCEL "Установка продолжится после перезагрузки!$\nПерезагрузить компьютер сейчас?" IDCANCEL +2
Reboot ;перезагрузка
Quit ;выход
${EndIf}
ClearErrors
ReadRegStr $0 HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" "AlcogolSoft"
IfErrors +3 ;если выше ключ существует, то ---
MessageBox MB_OK "Для продолжения установки нужно перезагрузить компьютер" IDOK
Quit
SectionEnd
shtuceron, в шапке темы --> документация

diakov
30-01-2012, 18:05
kotkovets, а есть какое то универсальное средство чтобы отследить после установки программы все изменения в системе (файловой, реестр понятно, новые процессы, установленные драйверы и т.д.), а вот столкнулся с проблемой такой перепаковывал internet download manager все работает все, но не работает расширенная интеграция в браузеры когда ставлю свой репак, пишет что я заблокировал сетевой драйвер IDM и не включается ни в какую не могу найти что где не так, пробовал отследить обращение к файлу или ветку реестра с помощью Procmon.exe никак не могу понять чего не хватает! Тоесть никак не могу понять какие файли отвечают за интеграцию IDM в браузеры! :search:
http://s015.radikal.ru/i331/1201/43/1542cd86be9f.jpg

kotkovets
30-01-2012, 18:32
есть какое то универсальное средство чтобы отследить после установки программы все изменения в системе (файловой, реестр понятно, новые процессы, установленные драйверы и т.д.), »
нет, каждое средство индивидуально, здесь прогибаем установщик под конкретную задачу, а не наоборот.
В справке, в шапке темы, вы найдете все инструменты. За Вами только как правильно их применитьперепаковывал internet download manager все работает все, но не работает расширенная интеграция в браузеры когда ставлю свой репак, пишет что я заблокировал сетевой драйвер IDM и не включается ни в какую не могу найти что где не так, пробовал отследить обращение к файлу или ветку реестра с помощью Procmon.exe никак не могу понять чего не хватает! Тоесть никак не могу понять какие файли отвечают за интеграцию IDM в браузеры! »
Вопрос не по теме, спросите знатоков, я не пользуюсь этой прогой,
мне достаточно встроенного в браузер стандартной качалки.




© OSzone.net 2001-2012