Показать полную графическую версию : [архив].: NSIS - все вопросы :.
kotkovets
09-08-2012, 21:17
И ещё, было бы лучше, на мой взгляд, делать в CHM формате, удобней просматривать и передвигаться по командам, нежели в PDF формате »
Кстати неплохая идея, спрошу у автора...
Отдельная глава с хорошим переводом - шикарно!
K.A.V., kotkovets,
А может не стОит смешивать-объединять мануал с нашим волшебным справочником ?
Справочник примечателен расширенными комментариями, разъяснениями и , главное, доходчивыми примерами - ко всему что есть и чего нет в мануале.
А что есть в мануале, всё-таки отражено скупо и сухо - так сказать, для продвинутых пользователей, уже знакомых с основами программирования и вычислительной логики...
Это как в законодательстве - сам Закон и его комментарии по объёму в 5 раз бОльшие, но разжёвывающие нюансы...
А справочник есть смысл расширять именно в направлении примеров и описания того, чего нет в мануале. И вполне можно опустить ту информацию, которая есть в мануале, делая толко ссылки на соответствующие исходные параграфы и главы мануала.
А в мануале много чего нет...
kotkovets
10-08-2012, 12:42
MKN этот перевод оригинала задумывается как отдельная глава справочника.
Это очень удобно иметь под рукой краткое описание команд!
В остальном все как и есть в справочнике:
множество примеров, описание плагинов, уроки по написанию своих страничек и т.д
А может не стОит смешивать-объединять мануал с нашим волшебным справочником ? »
MKN этот перевод оригинала задумывается как отдельная глава справочника. »
Я не имел ввиду именно склеивать наш справочник и тот мануал в один CHM файл!
Наш справочник - он таким и останется и там будет информация только от пользователей данного форума, других работ посторонних там не будет
Я всего лишь предложил добавить его документацию в наш архив (1 архив, в нём 2 документа), как альтернатива нашему справочнику всего лишь для совсем новичков в NSIS, только и всего
Я же не ставлю первоочерёдную задачу - перевести все команды NSIS, наш справочник нацелен на предоставление кодерам именно готовых примеров кодов и перевода плагинов
Наш же справочник идёт уже не совсем для новичков, а так сказать, кто более менее понял смысл NSIS и хочет получать именно примеры, а не просто перевод оригинального мануала NSIS
Creator000
10-08-2012, 21:33
У меня два вопроса:
1) При написании кода для NSIS придется использовать только NSIS'шный или еще придется использовать посторонние скрипты,
как в Inno нужно использовать Pascal для продвинутых функций. Другими словами все возможности реализовываются посредством только NSIS или нужно использовать посторонние языки программирования.
2) В NSIS все современные функции инсталляторов можно реализовать?
3) Бывают курсы по NSIS?
kotkovets
10-08-2012, 21:42
У меня два вопроса »
1) только NSIS'шный
Для продвинутых функций есть плагины, в частности самый используемый(в составе NSIS) - system.dll
2) что значит современные? При отличном знании NSIS и прикладного программирования - очень много чего можно реализовать
Creator000
10-08-2012, 22:12
kotkovets, прикладного программирования »
Вы сказали что только будет использоваться NSIS'шный код.
1) только NSIS'шный »
Мне пока продвинутые функции не нужны. С чего вы посоветуете начать изучение NSIS?
kotkovets
10-08-2012, 22:19
Вы сказали что только будет использоваться NSIS'шный код. »
Все верно!
С чего вы посоветуете начать изучение NSIS? »
с шапки темы.
Creator000
10-08-2012, 22:35
Созданный в NSIS инсталлятор является ANSI-приложением. »
он будет работать в windows xp vista 7 8 ? или юникод версия нужна?
kotkovets
10-08-2012, 22:46
он будет работать в windows xp vista 7 8 »
будет
юникод версия нужна? »
в основном если нужен оченьмногоязычный установщик
mariolast
13-08-2012, 22:54
Подскажите, в нижеприведенном коде есть какой то глюк
На 2008-й винде при старте приложения вылазит Ошибка при запуске приложения 0xc000000f. На всех остальных виндах работает отлично. Что может быть?
!include "$%WinDir%\Temp\ESETSIM\defines.txt"
!define /date date "%H:%M %d %b, %Y"
!define version "5.0.94.4"
VIAddVersionKey /LANG=1049 "ProductName" "ESET Antivirus & Firewall"
VIAddVersionKey /LANG=1049 "Comments" "Built on ${date}"
VIAddVersionKey /LANG=1049 "CompanyName" "sim team"
VIAddVersionKey /LANG=1049 "LegalCopyright" "Copyright (c) Eset 1992-2011"
VIAddVersionKey /LANG=1049 "FileDescription" "Smart Security & Antivirus"
VIAddVersionKey /LANG=1049 "FileVersion" "${version}"
VIAddVersionKey /LANG=1049 "OriginalFilename" "EsetClient.exe"
VIProductVersion "${version}"
SetCompressor /SOLID lzma
SetCompressorDictSize 32
SilentInstall silent
Name "ESET Antivirus & Smart Security"
XPStyle on
Icon install.ico
ChangeUI IDD_VERIFY progress.exe
OutFile "${Path}\EsetClient.exe"
SubCaption 3 " "
ShowInstDetails nevershow
!include FileFunc.nsh
!include x64.nsh
!insertmacro GetRoot
!insertmacro DriveSpace
!insertmacro GetOptions
!insertmacro GetParameters
var bit
var product
var setup
var silent
Function .onInit
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "EsetSIM") i .r1 ?e'
Pop $R0
StrCmp $R0 0 +2
Quit
${GetRoot} "$WINDIR" $R0
${DriveSpace} "$R0" "/D=F /S=M" $R1
IntCmp $R1 300 +3 0 +3
MessageBox MB_OK|MB_ICONSTOP|MB_TOPMOST "Íà ñèñòåìíîì äèñêå äîëæíî áûòü áîëåå$\n300 ìåãàáàéò ñâîáîäíîãî ìåñòà.$\nÓñòàíîâêà àíòèâèðóñà îòìåíåíà!"
Quit
ReadEnvStr $0 OS
StrCmp $0 "Windows_NT" 0 begin
ClearErrors
UserInfo::GetAccountType
IfErrors +3
Pop $0
StrCmp $0 "Admin" begin
MessageBox MB_OK|MB_ICONSTOP|MB_TOPMOST "Äëÿ óñòàíîâêè ïðîãðàììû ó ïîëüçîâàòåëÿ$\näîëæíû áûòü ïðàâà àäìèíèñòðàòîðà.$\nÓñòàíîâêà àíòèâèðóñà îòìåíåíà!"
Quit
begin:
${If} ${RunningX64}
SetRegView 64
${EndIf}
ClearErrors
ReadRegStr $0 HKLM "SOFTWARE\ESET\ESET Security\CurrentVersion\Info" "ProductName"
ReadRegStr $1 HKLM "SOFTWARE\ESET\ESET Security\CurrentVersion\Info" "ProductVersion"
ReadRegStr $2 HKLM "SOFTWARE\ESET\ESET Security\CurrentVersion\Info" "InstallDir"
ReadRegStr $3 HKLM "SOFTWARE\ESET\ESET Security\CurrentVersion\Info" "ProductCode"
IfErrors search_AV
messagebox::show MB_DEFBUTTON2|MB_TOPMOST "Óñòàíîâêà àíòèâèðóñà ESET" "0,103" " $\n Íà Âàøåì êîìïüþòåðå óæå óñòàíîâëåí $\n $0 $1 $\n $\n $\n Óäàëèòå $0. $\n Ïåðåçàãðóçèòå êîìïüþòåð è çàïóñòèòå óñòàíîâêó ñíîâà. $\n $\n " "Óäàëèòü $0" "Îòìåíà"
Pop $4
StrCmp $4 "1" +2
Quit
Exec '"$2callmsi.exe" /x $3 /qb'
Quit
search_AV:
ClearErrors
StrCpy $R0 "G DATA Software"
StrCpy $0 "SYSTEM\CurrentControlSet\Services\AVKWCtl"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "AVAST Antivirus"
StrCpy $0 "Software\ALWIL Software\Avast\4.0"
EnumRegKey $R1 HKLM $0 0
IfErrors +4
ReadRegStr $R1 HKLM $0 Avast4ProgramFolder
IfFileExists $R1\aswRunDll.exe conflicts
DeleteRegKey HKLM $0
ClearErrors
StrCpy $1 "Software\Wow6432Node\ALWIL Software\Avast\4.0"
EnumRegKey $R2 HKLM $1 0
IfErrors +4
ReadRegStr $R1 HKLM $0 Avast4ProgramFolder
IfFileExists $R1\aswRunDll.exe conflicts
DeleteRegKey HKLM $0
ClearErrors
StrCpy $R0 "AVG Antivirus or Internet Security"
StrCpy $0 "SYSTEM\CurrentControlSet\Services\AvgCoreSvc"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $0 "SYSTEM\CurrentControlSet\Services\avg8wd"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "Kaspersky Antivirus or Internet Security"
StrCpy $0 "SYSTEM\CurrentControlSet\Services\AVP"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "Symantec Software"
StrCpy $0 "SOFTWARE\Symantec\InstalledApps\SRTSP"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $0 "SOFTWARE\Symantec\InstalledApps\SAVRT"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $0 "SOFTWARE\Symantec\InstalledApps\SMSVersionSupport"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "Norton Internet Security"
StrCpy $0 "SYSTEM\CurrentControlSet\Services\ccEvtMgr"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $0 "SYSTEM\CurrentControlSet\Services\Norton Internet Security"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $0 "Software\Norton"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $0 "Software\Wow6432Node\Norton"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "Panda Software"
StrCpy $0 "SYSTEM\CurrentControlSet\Services\PAVSRV"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "Avira Antivirus or Security Suite"
StrCpy $0 "SYSTEM\CurrentControlSet\Services\AntiVirService"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "BitDefender Software"
StrCpy $0 "SOFTWARE\BitDefender"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "CA Software"
StrCpy $0 "SYSTEM\CurrentControlSet\Services\CAISafe"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "F-Secure Software"
StrCpy $0 "SYSTEM\CurrentControlSet\Services\Eventlog\System\F-Secure Gatekeeper"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "McAfee Software"
StrCpy $0 "SYSTEM\CurrentControlSet\Services\McShield"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "Windows Live OneCare"
StrCpy $0 "SYSTEM\CurrentControlSet\Services\OneCareMP"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "TrendMicro Software"
StrCpy $0 "SYSTEM\CurrentControlSet\Services\SfCtlCom"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $0 "SYSTEM\CurrentControlSet\Services\tmcomm"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $0 "SYSTEM\CurrentControlSet\Services\tmtdi"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "TrustPort Antivirus or PC Security"
StrCpy $0 "SYSTEM\CurrentControlSet\Services\avas_service"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "Norman Antivirus or Security Suite"
StrCpy $0 "SYSTEM\CurrentControlSet\Services\nsesvc"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "Rising Antivirus"
StrCpy $0 "SYSTEM\CurrentControlSet\Services\RsRavMon"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "Bullguard Internet Security"
StrCpy $0 "SYSTEM\CurrentControlSet\Services\BsFileScan"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "Sunbelt VIPRE Antivirus"
StrCpy $0 "SYSTEM\CurrentControlSet\Services\SBAMSvc"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
StrCpy $R0 "Microsoft Security Essentials"
StrCpy $0 "SYSTEM\CurrentControlSet\Services\MsMpSvc"
EnumRegKey $R1 HKLM $0 0
IfErrors 0 conflicts
ClearErrors
Goto +3
conflicts:
MessageBox MB_OK|MB_ICONSTOP|MB_TOPMOST "Âíèìàíèå! Íà Âàøåì êîìïüþòåðå óæå óñòàíîâëåí $R0$\nÓäàëèòå åãî èç Ïàíåëè óïðàâëåíèÿ è çàïóñòèòå óñòàíîâêó ñíîâà"
Quit
${GetParameters} $R0
StrCpy $silent qb
${GetOptions} "$R0" "/eav" $product
IfErrors +4
StrCpy $product "eav"
StrCpy $silent qn
Goto bit
ClearErrors
${GetOptions} "$R0" "/ess" $product
IfErrors +4
StrCpy $product "ess"
StrCpy $silent qn
Goto bit
ClearErrors
ReadRegStr $0 HKLM "SOFTWARE\ESET\ESET Security\CurrentVersion\Info" "ProductName"
IfErrors run
StrCpy $1 $0 4 #
StrCmp $1 "ESET" 0 run
ReadRegStr $2 HKLM "SOFTWARE\ESET\ESET Security\CurrentVersion\Info" "ProductVersion"
MessageBox MB_OK|MB_ICONSTOP|MB_TOPMOST "Íà Âàøåì êîìïüþòåðå óæå óñòàíîâëåí$\n$0 $2$\n$\nÂîçìîæíû ïðîáëåìû ïðè óñòàíîâêå ïîâåðõ ðàáîòàþùåãî ESET ! ! !$\n$\nÓäàëèòå $0.$\nÇàòåì çàïóñòèòå óñòàíîâêó ñíîâà.$\n$\nÓñòàíîâèòü ïîâåðõ ñòàðîé âåðñèè ìîæíî$\nïðè ïîìîùè êëþ÷åé ñêðûòîé óñòàíîâêè$\n/eav = NOD32 Antivirus$\n/ess = Smart Security"
Quit
run:
ClearErrors
messagebox::show MB_DEFBUTTON3|MB_TOPMOST "Óñòàíîâêà àíòèâèðóñà ESET" "0,103" "Êàêîé àíòèâèðóñíûé ïðîäóêò âû õîòèòå óñòàíîâèòü äëÿ çàùèòû ñâîåãî êîìïüþòåðà?$\n$\nNOD32 Antivirus = Àíòèâèðóñ + Àíòèøïèîí (ðåêîìåíäóåòñÿ íà÷èíàþùèì ïîëüçîâàòåëÿì)$\n$\nSmart Security = Àíòèâèðóñ + Àíòèøïèîí + Àíòèñïàì + Ïåðñîíàëüíûé ôàéåðâîë (îïûòíûì)" "NOD32 Antivirus" "Smart Security" "Îòìåíà"
Pop $product
StrCmp $product "1" 0 +3
StrCpy $product "eav"
Goto bit
StrCmp $product "2" 0 +3
StrCpy $product "ess"
Goto bit
Quit
bit:
${If} ${RunningX64}
StrCpy $bit 64
${Else}
StrCpy $bit 32
${EndIf}
FunctionEnd
Section Install
SetOutPath "$WINDIR\Temp\EsetSIM"
File cfg.xml
File /nonfatal "/oname=$WINDIR\Temp\EsetSIM\cfg.xml" "eset.xml"
StrCmp $product "eav" 0 ess
StrCmp $bit "32" 0 eav64
File /r "Distrib\eavbe_nt32_rus\*.*"
File /nonfatal "/oname=$WINDIR\Temp\EsetSIM\cfg.xml" "eav.xml"
StrCpy $setup eavbe_nt32_rus
StrCpy $9 "$PROGRAMFILES\ESET\ESET NOD32 Antivirus"
Goto install
eav64:
StrCmp $bit "64" 0 exit
File /r "Distrib\eavbe_nt64_rus\*.*"
File /nonfatal "/oname=$WINDIR\Temp\EsetSIM\cfg.xml" "eav.xml"
StrCpy $setup eavbe_nt64_rus
StrCpy $9 "$PROGRAMFILES64\ESET\ESET NOD32 Antivirus"
Goto install
ess:
StrCmp $product "ess" 0 exit
StrCmp $bit "32" 0 ess64
File /r "Distrib\essbe_nt32_rus\*.*"
File /nonfatal "/oname=$WINDIR\Temp\EsetSIM\cfg.xml" "ess.xml"
StrCpy $setup essbe_nt32_rus
StrCpy $9 "$PROGRAMFILES\ESET\ESET Smart Security"
Goto install
ess64:
StrCmp $bit "64" 0 exit
File /r "Distrib\essbe_nt64_rus\*.*"
File /nonfatal "/oname=$WINDIR\Temp\EsetSIM\cfg.xml" "ess.xml"
StrCpy $setup essbe_nt64_rus
StrCpy $9 "$PROGRAMFILES64\ESET\ESET Smart Security"
Goto install
install:
SetOutPath "$9\License"
File /nonfatal "eset.lic"
SetOutPath "$WINDIR\Temp\EsetSIM\APPDATADIR\Updfiles"
File /nonfatal "$%WinDir%\Temp\EsetSIM\Distrib\Updfiles\*.nup"
IfFileExists "$EXEDIR\eset_upd\update.ver" 0 start
StrCmp $EXEDIR "c:" start
IfFileExists "c:\eset_upd\*" 0 +2
RMDir /r /rebootok "c:\eset_upd"
CreateDirectory "c:\eset_upd"
CopyFiles /silent "$EXEDIR\eset_upd\*" "c:\eset_upd"
start:
WriteRegDWORD HKCU "Software\ESET\ESET Security\CurrentVersion\Client" "ShowSplash" 0x00000000
WriteRegDWORD HKCU "Software\ESET\ESET Security\CurrentVersion\Client" "ShowDesktopAlert" 0x00000000
WriteRegDWORD HKLM "\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" "PackageFeatures" 0x00000001
ExecWait '"$SYSDIR\msiexec.exe" /i "$WINDIR\Temp\EsetSIM\$setup.msi" /$silent'
exit:
SetOutPath "$WINDIR\Temp"
RMDir /r /rebootok "$WINDIR\Temp\EsetSIM"
Quit
SectionEnd
как сделать чтоб инсталл спросил о создании ярлыков на раб.столе и в панели быстрого запуска ??
На 2008-й винде при старте приложения вылазит Ошибка »
На всех остальных виндах работает отлично »
Что может быть? »
Проблема в ОС?
Если бы данный скрипт не отрабатывал на всех ОС без исключения, то можно было бы искать ошибку в нём
Может быть, 2008 отличается от других ОС? x64? Смотрите разницу в системах
Или может запускаете инсталлятор из сетевого окружения?? - Сообщение об ошибке при попытке открыть общие сетевые приложения на клиентском компьютере под управлением Windows 7 или Windows Server 2008 R2: 0xc000000f (http://support.microsoft.com/kb/978869/ru)
----
как сделать чтоб инсталл спросил о создании ярлыков на раб.столе и в панели быстрого запуска ?? »
Это можно сделать после прочтения Справочника по NSIS (http://forum.oszone.net/thread-168287.html)
Vincent7
14-08-2012, 15:37
K.A.V., как привязать чекбокс к секции?
Creator000
14-08-2012, 17:31
на полякова ссылки не рабочие. на зеркале (яндекс) скачивает какой то файл это точно не учебник. на сайте тоже нет ссылок. есть одна на один файлообменник у которого обрывается связь. залейте пожалуйста на нормальный депозит.
Creator000
14-08-2012, 19:31
SetOutPath определяет куда будет установлена программа или распакованы временные файлы? для чего это
Creator000
14-08-2012, 20:38
сначала нужно писать MUI_HEADERIMAGE а потом MUI_HEADERIMAGE_BITMAP ?
K.A.V., как привязать чекбокс к секции? »
Вопроса не понял
на полякова ссылки не рабочие. на зеркале (яндекс) скачивает какой то файл это точно не учебник. »
Там ZIP архив, скачиваете, открываете, в нём PDF документ - это и есть справочник
Для просмотра PDF документов используйте спец. программы, простым запросом (http://lmgtfy.com/?q=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0+%D0%B4%D0%BB%D1%8F+%D0%BF%D1%80%D0%BE%D1%8 1%D0%BC%D0%BE%D1%82%D1%80%D0%B0+PDF+%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2) в Google можно сразу же получить результат
SetOutPath определяет куда будет установлена программа или распакованы временные файлы? для чего это »
Справочник по NSIS (http://forum.oszone.net/thread-168287.html) => Перевод справки NSIS => File
сначала нужно писать MUI_HEADERIMAGE а потом MUI_HEADERIMAGE_BITMAP ? »
Справочник по NSIS (http://forum.oszone.net/thread-168287.html) => Оформление => Интерфейс Modern => Заголовок инсталлятора
Сложно взять, и почитать справочник на родном языке?
За вас ещё искать информацию в справочнике, это слишком...
Creator000
14-08-2012, 22:00
Сложно взять, и почтитать справочник на родном языке? »
Я не корректно задал вопрос? или вам тяжело ответить на вопрос? я не спрашиваю какая функция, я спрашиваю использовать мне сразу две или одну MUI_HEADERIMAGE_BITMAP?
Creator000
14-08-2012, 22:05
Там ZIP архив, скачиваете, открываете, в нём PDF документ - это и есть справочник »
где там?
здесь у меня не качает. (http://turbobit.net/os4xvwbicb0m.html)
с яндекса вот что качается
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC