Показать полную графическую версию : [архив].: NSIS - все вопросы :.
kotkovets, видел репак daemon tools на нсис в котором идет подхват sptd драйвера из папки разположеной рядом с установщиком...в папке два файла оригинальные SPTDinst-x64.exe и SPTDinst-x64.exe тоесть в сам инсталятор они не вшиваются, как такое провернуть?
kotkovets
31-01-2012, 17:34
SPTDinst-x64.exe и SPTDinst-x64.exe тоесть в сам инсталятор они не вшиваются, как такое провернуть? »
Элементарно, переменная $EXEDIR возвращает текущую папку инсталлятора.
Примерно так:
!include "x64.nsh"
Section ""
${If} ${RunningX64}
IfFileExists "$EXEDIR\sptd64\SPTDinst-x64.exe" 0 +2
ExecWait "$EXEDIR\sptd64\SPTDinst-x64.exe" ;запуск установки лрайвера
${Else}
IfFileExists "$EXEDIR\sptd\SPTDinst.exe" 0 +2
ExecWait "$EXEDIR\sptd\SPTDinst.exe"
${EndIf}
SectionEnd
Если платформа х64, то подхватится файл SPTDinst-x64.exe из папки "$EXEDIR\sptd64"
Если платформа х32, то подхватится файл SPTDinst.exe из папки "$EXEDIR\sptd"
Painkiller
31-01-2012, 19:01
kotkovets , подскажите пример скрипта для правильной установки приложение в $PROGRAMFILES64 и $PROGRAMFILES32 ???
Так не получается :
!include "x64.nsh"
.....
${If} ${RunningX64}
InstallDir "$PROGRAMFILES64\${PRODUCT_NAME}"
${Else}
InstallDir "$PROGRAMFILES\${PRODUCT_NAME}"
${EndIf}
Тогда как ?
kotkovets
31-01-2012, 19:34
Painkiller, Все гораздо проще, чем вы думаете...
пишем вне секции, в начале скрипта, но после объявления константы ${PRODUCT_NAME}
InstallDir "$PROGRAMFILES64\${PRODUCT_NAME}"
Предопределенных констант несколько:
$PROGRAMFILES, $PROGRAMFILES32, $PROGRAMFILES64 — папка Program files. В 64разрядной системе констатация $PROGRAMFILES и $PROGRAMFILES32 представляют папку C:\Program Files (x86), а $PROGRAMFILES64 - C:\Program Files.
А значит 32разрядной системе $PROGRAMFILES64 — папка Program files. и Все!
kotkovets, все таки не дает мне покоя IDM прочитав ети строки из idmtdi.inf и idmwfp.inf я понял что запускаются некие сервисы
Class = NetService
ClassGuid = {4d36e974-e325-11ce-bfc1-08002be10318}
CatalogFile = idmtdi.cat
[DestinationDirs]
DriverFiles32 = 12 ; %windir%\system32\drivers
DriverFiles64 = 12 ; %windir%\system32\drivers
.............................
[IdmTdi.Service]
DisplayName = %ServiceName%
Description = %ServiceDesc%
ServiceBinary = %12%\idmtdi.sys ; %windir%\system32\drivers\idmtdi.sys
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 1 ; SERVICE_SYSTEM_START
ErrorControl = 0 ; SERVICE_ERROR_IGNORE
;Dependencies = Tcpip
;LoadOrderGroup = PNP_TDI
;
; Copy Files
;
[DriverFiles32]
idmtdi.sys,idmtdi32.sys,,0x04 ; COPYFLG_NOVERSIONCHECK
[DriverFiles64]
idmtdi.sys,idmtdi64.sys,,0x04 ; COPYFLG_NOVERSIONCHECK
[SourceDisksNames]
1 = %SourceDisk%
[SourceDisksFiles]
idmtdi32.sys = 1
idmtdi64.sys = 1
и
[DefaultInstall.NTx86]
CopyFiles = DriverFiles32
[DefaultInstall.NTamd64]
CopyFiles = DriverFiles64
[DefaultInstall.NTx86.Services]
AddService = %ServiceName%,0,IdmTdi.Service
[DefaultInstall.NTamd64.Services]
AddService = %ServiceName%,0,IdmTdi.Service
....................
[IdmTdi.Service]
DisplayName = %ServiceName%
Description = %ServiceDesc%
ServiceBinary = %12%\idmtdi.sys ; %windir%\system32\drivers\idmtdi.sys
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 1 ; SERVICE_SYSTEM_START
ErrorControl = 0 ; SERVICE_ERROR_IGNORE
;Dependencies = Tcpip
;LoadOrderGroup = PNP_TDI
в директории самой проги есть файлы idmtdi32.sys, idmtdi64.sys, idmwfp32.sys, idmwfp64.sys, idmtdi.cat, idmwfp.cat, тоесть при установке запускаются сетевый сервисы IdmTdi.Service и IdmWfp.Service как запустить такие сервисы средствами нсис? Спасибо!
kotkovets
01-02-2012, 10:56
как запустить такие сервисы средствами нсис? »
Попробуйте плагинами http://forum.oszone.net/post-1508031-816.html
возможно начиная с какого-то момента полностью скрыть интерфейс установщика ?
kotkovets
01-02-2012, 18:00
возможно начиная с какого-то момента полностью скрыть интерфейс установщика ? »
HideWindow, или через WinAPI
Нужно установить ASP.NET веб приложение. Информации в интернете почти нет. Дайте ссылку кто-нибудь.
Donniblack
04-02-2012, 22:13
Народ сижу и туплю уже сколь времени!!!!!НЕ могу просто догнать.......Даже если не могу создавать скрипты не дано просто ((((ну скачал скрипт уже готовый а дальше то что .....как создать сам ехе , чтоб в тихую ставить то ????Что нужно для тихой установки программы ????
kotkovets
04-02-2012, 22:33
Народ сижу и туплю уже сколь времени!!!! »
Donniblack, Начните с шапки -->Документация-->Справочник по NSIS
как создать сам ехе »
Компилировать скрипт, а вы NSIS скачали или хотя бы удобный редактор HM NIS Edit ? :)
Что нужно для тихой установки программы ???? »
Запускать скомпилированный скрипт (exe) c ключом - /S
Или в начале скрипта, вне секции или функции, написать команду:
SilentInstall Silent
Donniblack
05-02-2012, 07:27
kotkovets
Да я скачал готовый скрипт уже, потому как делать его похоже для меня сложно наверно. НАверно надо знать языки програмирования, но разобраться очень хотелось бы.
Просто что дальше делать с готовым скриптом.
Как сделать сборку программы, какие папки и что делать.
Спасибо что ответили на предыдущее письмо!!!!
kotkovets
05-02-2012, 16:53
Да я скачал готовый скрипт уже »
А где скачали, ссылку
Как сделать сборку программы, какие папки и что делать »
Просто что дальше делать с готовым скриптом. »
Компилировать NSIS (http://nsis.sourceforge.net/Download)'ом и изучать справку.
Тему до конца ещё не дочитал... (47 страница)
Мож было уже...
Не могли бы разжевать как пользоваться этим (http://nsis.sourceforge.net/HwInfo_plug-in) плагином?..
Что-то никак не соображу.
Надо сделать так, чтоб при объёме памяти меньше, чем 1 ГБ, установка не запускалась.
Потому как во время установки будет распаковываться архив 7z, на распаковку которого нужно не менее 1Гб RAM.
Да и ещё.
Можно сделать так чтоб не кракозябры были?
http://s1.directupload.net/images/120206/temp/3ihmnzq3.png (http://s1.directupload.net/images/120206/3ihmnzq3.png)
Там файлы копируются...
Section
nsExec::ExecToLog '"cmd.exe" /C COPY /Y $\"${OutDir}\Папка1\*.*$\" $\"${OutDir}\Папка2$\"'
Pop $0
Pop $1
DetailPrint "$1"
DetailPrint "Возвращённое значение: $0"
SectionEnd
upd.
Хотя ладно...
Не буду так копировать - попробую CopyFiles.
Donniblack
06-02-2012, 14:03
kotkovets
Готовый скрипт скачал сдесь на форуме, похоже он уже скомпилирован, просто я так понимаю дальше нужно сделать сборку exe, либо действительно надо сидеть и читать.......Просто хотелось бы сделать программы для само установки, потому как приходиться ставить клиентам, а потом просто менять версии а не создавать новыеЮ, поэтому просто и хочеться разобраться как делать это, потому как версии программ выходят все более новые.
Просто хочеться сделать WPI свою сборку, и не все проги могут ставиться через cmd ключи, на некоторые нужно писать скрипты, вот и хочу разобраться но пока это туго получается.....(((
Krinkels
06-02-2012, 15:23
похоже он уже скомпилирован »
Как у тебя все туго. Файл NSIS скрипта имеет расширение .nsi. А скомпилированный файл будет с расширением .exe.
вот и хочу разобраться но пока это туго получается.....((( »
У NSIS своеобразный скриптовый язык, но чтоб им овладеть нужно знать минимум в программировании.
Donniblack
06-02-2012, 15:47
Krinkels
Нет это понятно что нужно знать в програмировании,
Но в фотошопе тоже трудно, однако с помощью уроков можно понять что то,\
Я так пониаю лучше не заморачиваться с NSIS и качать сборки WPI и оттуда себе вытягивать проги и добавлять просто в свою сборку ((((((((
Обидно а хотелось бы понимать((((
Спасибо всем в помощи.....
Krinkels
06-02-2012, 16:00
Donniblack
В шапке есть справочник на русском языке, в нем есть и описания функций и примеры. Я рекомендую начать с него. А вообще пиши код, если что то не получиться выкладывай, может и поможем :)
kotkovets
06-02-2012, 18:45
Обидно а хотелось бы понимать(((( »
Если сильно захотеть...через месяцок Вы будете думать, что глупые вопросы задавал :)Надо сделать так, чтоб при объёме памяти меньше, чем 1 ГБ, установка не запускалась. »
Иногда и такое, но редко такое условие возникает:
!include "MUI2.nsh"
ShowInstDetails show
OutFile Memory.exe
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"
Section
System::Alloc 32 # (4+4+4+4+4+4+4+4=32 байта) # выделяем буфер
Pop $1 # определяем адрес выделенного буфера
System::Call "Kernel32::GlobalMemoryStatus(ir1)"
System::Call "*$1(i,i,i.r0)" # считываем данные со структуры
System::Free $1 # освобождаем буфер
DetailPrint "Total physical memory: $0 byte"
IntCmp $0 1073741842 +3 0 +3 ;сравниваем количество байт
MessageBox MB_OK "память меньше 1 гигабайта " IDOK
Abort ;прерыввание
SectionEnd
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC