Ru-Board.club
← Вернуться в раздел «Программы»

» NSIS (Nullsoft Scriptable Install System)

Автор: kot280379
Дата сообщения: 17.03.2011 16:32

Цитата:
как подписали инсталлятор цифровой подписью компании?

Вы имеете ввиду, текст бренда, внизу слева? это не цифровая подпись, даже издалека и не пахнет.
в скрипте текст задается так:
BrandingText "my company bla bla bla "
и парочкой команд, которые выводится в описании файла, пример из справки NSIS:

Код: VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "Test Application"
VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "A test comment"
VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "Fake company"
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "Test Application is a trademark of Fake company"
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "© Fake company"
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Test Application"
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "1.2.3"
Автор: qwerqwer444
Дата сообщения: 17.03.2011 16:43
я имею ввиду именно цифровую подпись со штампом времени правой кнопкой мыши по инсталлу раздел цифровые подписи там будет имя подписавшего, электронная почта, штамп времени. я сам просто такое первый раз в жизни вижу что бы так можно было сделать, значит всякое бывает даже что нам не ведомо
Автор: 820815
Дата сообщения: 17.03.2011 20:29
qwerqwer444
Посмотреть бы на это чудо...

John_White
WoW
Автор: Victor_VG
Дата сообщения: 18.03.2011 04:08
qwerqwer444

Интересно, Вы что, собственные стубы каждый раз компилите? Есть способы проверки подлинности и попроще, но я всех своих секретов на публику не выложу -эти приёмы просты и очень эффективны, и по крайней мере, плагиаторы от них воем воют. Собственно для них они и были созданы дабы им жизнь мёдом не казалась когда они меня окончательно достали. Теперь сами получили кошмары во сне и наяву, но это их трудности.
Автор: sawerx
Дата сообщения: 20.03.2011 17:51
При использовании msvfw32.dll для воспроизведения фоновой музыки в формате MID, происходит значительная задержка.
Возможно ли в этот промежуток времени отображать какой ни будь Баннер?
Автор: sawerx
Дата сообщения: 22.03.2011 20:54
-----?
Значит нет?
Автор: Victor_VG
Дата сообщения: 22.03.2011 21:14
sawerx

Ждите, не торопите людей, ответят.
Автор: dimbat
Дата сообщения: 23.03.2011 04:09
sawerx
Баннер не проблема, задача будет его закрыть вовремя. Т.е. программно определить окончание этой задержки. И соответственно неплохо бы знать из-за чего она происходит.
Выкладывайте кусок кода для тестов, иначе хз.
Автор: sawerx
Дата сообщения: 24.03.2011 00:45
Простой пример Play_Sound
Автор: dimbat
Дата сообщения: 24.03.2011 01:14
sawerx
Скомпилировал этот пример, только подменил tango.mp3 на первый попавшийся миди. Начинает играть сразу же при запуске, как и мп3. Ни малейшей задержки.
---
Может у вас распаковка какая в начале? Тогда баннер можно под нее подвязать.
Автор: sawerx
Дата сообщения: 24.03.2011 01:57
MP3 он кушает сразу даже play repeat поддерживает, но Midi тормозит серьёзно!
Сначала появляется меседж типа приглашения и лишь потом начинается установка с Play Sound. В этом промежутке разница значительная если сравнивать с MP3.
Автор: dimbat
Дата сообщения: 24.03.2011 11:56
sawerx
Попробуйте так:

Код:
Function .onInit
InitPluginsDir
SetOutPath $PLUGINSDIR
File 1.mid
Banner::show /set 76 "Пожалуйста подождите." "Идет подготовка к установке..."
System::Call 'msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$PLUGINSDIR\1.mid") i .r0'
StrCpy $hmci $0
SendMessage $hmci 0x0490 0 0 $0
IntCmp $0 0 nosup
ShowWindow $hmci SW_HIDE
SendMessage $hmci 0x0465 0 "STR:play"
Banner::destroy
nosup:
FunctionEnd
Автор: Victor_VG
Дата сообщения: 24.03.2011 15:01
dimbat

Плагин system входит. Искать именно его нет нужды.
Автор: dimbat
Дата сообщения: 24.03.2011 16:02
Victor_VG
Я имел ввиду плаг banner.dll
Автор: sawerx
Дата сообщения: 25.03.2011 22:53
Спасибо, за интересное решение!
Я ещё не успел опробовать, но смысл понятен (ларчик просто открывался)

-----
Хотел было выложить исходники с новой проблемкой, но тут вдруг умер Filekeeper,
подскажите плиз доступный и вам удобный другой FTP или файл мусорку.

Заранее спасибо!
Автор: 820815
Дата сообщения: 26.03.2011 00:42
sawerx
Файлообменников как бы полно
rghost.ru например
Автор: Victor_VG
Дата сообщения: 26.03.2011 09:20
dimbat

Входит, вот список того, что есть стандартном в дистрибутиве: AdvSplash.dll, Banner.dll, BgImage.dll, Dialer.dll, InstallOptions.dll, LangDLL.dll, Math.dll, InsDialogs.dll, nsExec.dll, NSISdl.dll, Splash.dll, StartMenu.dll, System.dll, ,TypeLib.dll, UserInfo.dll, VPatch.dll
Автор: sawerx
Дата сообщения: 26.03.2011 17:00
Вопрос о замене защищённых файлов!
В Windows 7 при замене защищённых файлов,
не всегда получается, удалить эти файлы.
Вот реальный пример ...
Автор: yyv
Дата сообщения: 30.03.2011 15:48
подскажите пожалуйста
есть такая задача
есть инсталер собранный на NSIS
на определенном этапе предусмотрено скачивание файлов
с маленькими файлами проблем нет NSISdl справляется прекрасно
но вот бывают файлы от 1 гб и больше
тут в случае обрыва связи закачка просто прекращается.
есть плагин inetc в котором параметр /RESUME отвчает за докачку файлов
внешне все прекрасно
начали качать, выдернули сетевой кабель, закачка остановилась, выскочило окошко с предложением докачать/отменть, вставили кабель, нажали продолжить и закачка идет дальше.
но на самом деле реальной докачки не происходит.
плагин заново перекачивает все до момента обрыва и потом продолжает дальше, в итоге конечно файл скачается но хотелось бы функционал докачки.
может кто сталкивался с подобным?
подскажите вариант решения
с ув. Я



Автор: dimbat
Дата сообщения: 30.03.2011 16:27
yyv
Добавьте в проект Wget, самое оно в вашем случае.
Автор: Victor_VG
Дата сообщения: 30.03.2011 18:39
yyv

Самое разумное решение. Wget собранный с поддержкой OpenSSL 1.0.0a, но прекрасно работает и с 1.0.0d (на сегодня последняя версия) забирайте тут. Там уже всё есть - сам Wget, библиотеки OpenSSL 1.0.0d и файл корневых сертификатов. Просто киньте всё в один каталог и пользуйтесь. По большому счёту бинарник openssl.exe не нужен и ztuj включил на всякий случай - может пригодится для диагностики соединения. Ключи вызова Wget приведены в официальной справке - GNU Wget 1.12 Manual. Точнее информации нигде не найдёте.
Автор: yyv
Дата сообщения: 31.03.2011 10:03
dimbat
Victor_VG
спасибо. попробуем.
Автор: androiden
Дата сообщения: 07.04.2011 12:01
Доброго вечера, уважаемые.
Прошу помощи в следующем вопросе:
имеются файлы с расширениями .tmp.patchFile и файл VPatch.dll
как реализовать функцию патченья при помощи данных файлов средствами zip2exe в классической оболочке с автоматическим поиском папки назначения?

За помощь буду очень благодарен и признателен. Заранее спасибо.
Автор: sawerx
Дата сообщения: 08.04.2011 21:48
Я часто использовал zip2exe и ни какой особой разницы не ощущал.
Просто пишу несколько изменённый скрипт в папке zip2exe и переименовываю его к примеру Classic.nsh

Единственная особенность, это надо содержимое папки вашего проекта Ctrl+A и в Zip архив.
Далее желательно переместить на всякий случай этот архив в другое место, из за переменной $(^NameDA), что бы zip2exe.exe не переписал исполняемый файл программы в инсталлируемый.


Код:
Function .onInit
; Прочитать в реестре путь и проверить или как там у вас...
FunctionEnd

Function .onVerifyInstDir
IfFileExists $INSTDIR\ля-ля.tmp.patchFile PathFile

; -- ваш код --!

vpatch::vpatchfile "ля-ля_.tmp.patch" "старый_.tmp.patch" "новый.xxx"

PathFile:
FunctionEnd
Автор: kot280379
Дата сообщения: 09.04.2011 10:52
sawerx
ваш пример не будет работать.
перед работай патча необходимо создать файл изменений, т.e сравнить оригинал.файл и патченый файл.
Берем из папки ${NSISISR}\bin утилитку genpat.exe и заводим ее таким образом:
genpat.exe "путь\оригинал.файл" "путь\патченый файл" "path.pat"
В результате получим файлик path.pat - файл изменений, в результате сравнения оригинал.файла и патченого. файла.
А далее по такому сценарию:


Код: File /oname=$PLUGINSDIR\path.pat "path.pat"

vpatch::vpatchfile "$PLUGINSDIR\path.pat" "путь\оригинал.файл" "путь\пропатченный оригинал. файл"
Автор: SamLab
Дата сообщения: 09.04.2011 11:43
Кто нибудь пробовал найтли http://nsis.sourceforge.net/nightly/nsis.zip от 26 января? У меня на скриптах от версии 2.46 работает только найтли от 14.10.2010 - все новые дают ошибку: Error: Invalid language file / Error in macro MUI_LANGUAGE
Автор: kot280379
Дата сообщения: 09.04.2011 14:19
SamLab
у меня только нормально работает MUI c aнглийским языком с другими засада
!insertmacro MUI_LANGUAGE "English"
и там все языковые файлы в кодировке UFT-8
Если другие языки выбирать, то скрипт должен быть в кодировке Unicode
Автор: sawerx
Дата сообщения: 11.04.2011 21:21
kot280379

Вы наверно имели ввиду вот это
Если человек написал, что он это знает, зачем повторяться.
Его больше интересовала, что в файле Classic.nsh не поддерживается определение
InstallDir "${XXXX}"
Автор: david141
Дата сообщения: 13.04.2011 06:30
Может, кто знает, что за ошибка?
Invalid command: ${LocateNoDetails}
Error in macro CopyFilesFromDir on macroline 34

Вот исходник: http://ifolder.ru/22925369 firefox-installer
Может, кто разберётся и выложит рабочий?

Автор: Victor_VG
Дата сообщения: 13.04.2011 08:37
david141

Тут и смотреть не надо - макрос не определён - в одном из внешних инклюдов стоит его вызов, а тела нет. И вообще, то что Вы выложили никакого смысла сегодня не имеет - берётся банальная связка NSIS + HM NIS, мастер генерирует скелет скрипта с применением MUI, на него навешивается любая нужная логика и не надо городить весь тот огород с бору по сосенке что вы выложили. В том варианте, что в архиве инсталлятор никогда не соберётся - там 3/4 нужных внешних определений отсутствуют. И таким способом Вы будете его годы собирать. Проще как я Вам сказал всё заново написать и не изобретать велосипед как Вы сейчас пытаетесь.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364

Предыдущая тема: The Bat!


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.