Показать полную графическую версию : .: NSIS - все вопросы :. часть 2.
Kopejkin
26-09-2015, 00:14
...в этом случае пишется..»
А где у вас записаны все ваши файлы? Напишите все свои файлы, они и запишутся в лог.
А где у вас записаны все ваши файлы? Напишите все свои файлы, они и запишутся в лог. »
Все файлы я записать не могу, ибо их много и их набор меняется от сборки к сборке. Также имеется некая структура вложенных каталогов.
Доброго времени суток...такой момент
;В данном случае ключ реестра не успевает импортироваться
${registry::RestoreKey} "$EXEDIR\Test\Backup.reg" $0
;Место для кода приведенного ниже
RMDir /r "$EXEDIR\Test"
;===Вариант решения 1
;помогает но что если для другого ПК не поможет (ему надо 5 сек например)
Sleep 1000
;===Вариант решения 2
;не помогает,т.е. возвращается код успеха (0) но не успевает занести данные
Sleep 500
IntCmp $0 0 +2 -1
Как решить эту проблему,рациональным способом?
теоретически код возврата должен быть после импорта, но на практике видимо иначе :(
Kopejkin
27-09-2015, 16:42
Прочитал статью "Uninstall only installed files" »
Простите, не увидел, чем вы пользовались. У меня этот пример толком тоже не работает.
А сколько это - много файлов?
Знатоком не являюсь, но решал бы проблему "сложным" путем, т.е. записывал отдельно все свои файлы.
Для облегчения воспользовался бы инструментом Add files to installation из HM NIS Edit и переделал бы полученный список под свои нужды.
Любой текстовый редактор, тот же HM NIS Edit, быстро выполнит замену нужных кусков.
Например, более 400 файлов в папках NSIS:
delete "$INSTDIR\Bin\GenPat.exe"
delete "$INSTDIR\Bin\LibraryLocal.exe"
delete "$INSTDIR\Bin\MakeLangId.exe"
delete "$INSTDIR\Bin\RegTool.bin"
delete "$INSTDIR\Bin\zip2exe.exe"
delete "$INSTDIR\Contrib\CRCCheck\CRCCheck.c"
delete "$INSTDIR\Contrib\CRCCheck\CRCCheck.ncb"
delete "$INSTDIR\Contrib\CRCCheck\CRCCheck.sln"
delete "$INSTDIR\Contrib\CRCCheck\CRCCheck.suo"
delete "$INSTDIR\Contrib\CRCCheck\CRCCheck.txt"
delete "$INSTDIR\Contrib\CRCCheck\CRCCheck.vcproj"
delete "$INSTDIR\Contrib\CRCCheck\Example.nsi"
delete "$INSTDIR\Contrib\Graphics\Checks\big.bmp"
delete "$INSTDIR\Contrib\Graphics\Checks\classic-cross.bmp"
delete "$INSTDIR\Contrib\Graphics\Checks\classic.bmp"
delete "$INSTDIR\Contrib\Graphics\Checks\colorful.bmp"
delete "$INSTDIR\Contrib\Graphics\Checks\grey-cross.bmp"
delete "$INSTDIR\Contrib\Graphics\Checks\grey.bmp"
delete "$INSTDIR\Contrib\Graphics\Checks\modern.bmp"
delete "$INSTDIR\Contrib\Graphics\Checks\red-round.bmp"
delete "$INSTDIR\Contrib\Graphics\Checks\red.bmp"
delete "$INSTDIR\Contrib\Graphics\Checks\simple-round.bmp"
delete "$INSTDIR\Contrib\Graphics\Checks\simple-round2.bmp"
delete "$INSTDIR\Contrib\Graphics\Checks\simple.bmp"
delete "$INSTDIR\Contrib\Graphics\Header\nsis-r.bmp"
delete "$INSTDIR\Contrib\Graphics\Header\nsis.bmp"
delete "$INSTDIR\Contrib\Graphics\Header\orange-nsis.bmp"
delete "$INSTDIR\Contrib\Graphics\Header\orange-r-nsis.bmp"
delete "$INSTDIR\Contrib\Graphics\Header\orange-r.bmp"
delete "$INSTDIR\Contrib\Graphics\Header\orange-uninstall-nsis.bmp"
delete "$INSTDIR\Contrib\Graphics\Header\orange-uninstall-r-nsis.bmp"
delete "$INSTDIR\Contrib\Graphics\Header\orange-uninstall-r.bmp"
delete "$INSTDIR\Contrib\Graphics\Header\orange-uninstall.bmp"
delete "$INSTDIR\Contrib\Graphics\Header\orange.bmp"
delete "$INSTDIR\Contrib\Graphics\Header\win.bmp"
delete "$INSTDIR\Contrib\Graphics\Icons\arrow-install.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\arrow-uninstall.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\arrow2-install.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\arrow2-uninstall.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\box-install.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\box-uninstall.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\classic-install.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\classic-uninstall.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\llama-blue.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\llama-grey.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\modern-install-blue-full.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\modern-install-blue.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\modern-install-colorful.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\modern-install-full.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\modern-install.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\modern-uninstall-blue-full.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\modern-uninstall-blue.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\modern-uninstall-colorful.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\modern-uninstall-full.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\modern-uninstall.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\nsis1-install.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\nsis1-uninstall.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\orange-install-nsis.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\orange-install.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\orange-uninstall-nsis.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\orange-uninstall.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\pixel-install.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\pixel-uninstall.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\win-install.ico"
delete "$INSTDIR\Contrib\Graphics\Icons\win-uninstall.ico"
delete "$INSTDIR\Contrib\Graphics\Wizard\arrow.bmp"
delete "$INSTDIR\Contrib\Graphics\Wizard\llama.bmp"
delete "$INSTDIR\Contrib\Graphics\Wizard\nsis.bmp"
delete "$INSTDIR\Contrib\Graphics\Wizard\nullsoft.bmp"
delete "$INSTDIR\Contrib\Graphics\Wizard\orange-nsis.bmp"
delete "$INSTDIR\Contrib\Graphics\Wizard\orange-uninstall-nsis.bmp"
delete "$INSTDIR\Contrib\Graphics\Wizard\orange-uninstall.bmp"
delete "$INSTDIR\Contrib\Graphics\Wizard\orange.bmp"
delete "$INSTDIR\Contrib\Graphics\Wizard\win.bmp"
delete "$INSTDIR\Contrib\Language files\Afrikaans.nlf"
delete "$INSTDIR\Contrib\Language files\Afrikaans.nsh"
delete "$INSTDIR\Contrib\Language files\Albanian.nlf"
delete "$INSTDIR\Contrib\Language files\Albanian.nsh"
delete "$INSTDIR\Contrib\Language files\Arabic.nlf"
delete "$INSTDIR\Contrib\Language files\Arabic.nsh"
delete "$INSTDIR\Contrib\Language files\Basque.nlf"
delete "$INSTDIR\Contrib\Language files\Basque.nsh"
delete "$INSTDIR\Contrib\Language files\Belarusian.nlf"
delete "$INSTDIR\Contrib\Language files\Belarusian.nsh"
delete "$INSTDIR\Contrib\Language files\Bosnian.nlf"
delete "$INSTDIR\Contrib\Language files\Bosnian.nsh"
delete "$INSTDIR\Contrib\Language files\Breton.nlf"
delete "$INSTDIR\Contrib\Language files\Breton.nsh"
delete "$INSTDIR\Contrib\Language files\Bulgarian.nlf"
delete "$INSTDIR\Contrib\Language files\Bulgarian.nsh"
delete "$INSTDIR\Contrib\Language files\Catalan.nlf"
delete "$INSTDIR\Contrib\Language files\Catalan.nsh"
delete "$INSTDIR\Contrib\Language files\Croatian.nlf"
delete "$INSTDIR\Contrib\Language files\Croatian.nsh"
delete "$INSTDIR\Contrib\Language files\Czech.nlf"
delete "$INSTDIR\Contrib\Language files\Czech.nsh"
delete "$INSTDIR\Contrib\Language files\Danish.nlf"
delete "$INSTDIR\Contrib\Language files\Danish.nsh"
delete "$INSTDIR\Contrib\Language files\Dutch.nlf"
delete "$INSTDIR\Contrib\Language files\Dutch.nsh"
delete "$INSTDIR\Contrib\Language files\English.nlf"
delete "$INSTDIR\Contrib\Language files\English.nsh"
delete "$INSTDIR\Contrib\Language files\Esperanto.nlf"
delete "$INSTDIR\Contrib\Language files\Esperanto.nsh"
delete "$INSTDIR\Contrib\Language files\Estonian.nlf"
delete "$INSTDIR\Contrib\Language files\Estonian.nsh"
delete "$INSTDIR\Contrib\Language files\Farsi.nlf"
delete "$INSTDIR\Contrib\Language files\Farsi.nsh"
delete "$INSTDIR\Contrib\Language files\Finnish.nlf"
delete "$INSTDIR\Contrib\Language files\Finnish.nsh"
delete "$INSTDIR\Contrib\Language files\French.nlf"
delete "$INSTDIR\Contrib\Language files\French.nsh"
delete "$INSTDIR\Contrib\Language files\Galician.nlf"
delete "$INSTDIR\Contrib\Language files\Galician.nsh"
delete "$INSTDIR\Contrib\Language files\German.nlf"
delete "$INSTDIR\Contrib\Language files\German.nsh"
delete "$INSTDIR\Contrib\Language files\Greek.nlf"
delete "$INSTDIR\Contrib\Language files\Greek.nsh"
delete "$INSTDIR\Contrib\Language files\Hebrew.nlf"
delete "$INSTDIR\Contrib\Language files\Hebrew.nsh"
delete "$INSTDIR\Contrib\Language files\Hungarian.nlf"
delete "$INSTDIR\Contrib\Language files\Hungarian.nsh"
delete "$INSTDIR\Contrib\Language files\Icelandic.nlf"
delete "$INSTDIR\Contrib\Language files\Icelandic.nsh"
delete "$INSTDIR\Contrib\Language files\Indonesian.nlf"
delete "$INSTDIR\Contrib\Language files\Indonesian.nsh"
delete "$INSTDIR\Contrib\Language files\Irish.nlf"
delete "$INSTDIR\Contrib\Language files\Irish.nsh"
delete "$INSTDIR\Contrib\Language files\Italian.nlf"
delete "$INSTDIR\Contrib\Language files\Italian.nsh"
delete "$INSTDIR\Contrib\Language files\Japanese.nlf"
delete "$INSTDIR\Contrib\Language files\Japanese.nsh"
delete "$INSTDIR\Contrib\Language files\Korean.nlf"
delete "$INSTDIR\Contrib\Language files\Korean.nsh"
delete "$INSTDIR\Contrib\Language files\Kurdish.nlf"
delete "$INSTDIR\Contrib\Language files\Kurdish.nsh"
delete "$INSTDIR\Contrib\Language files\Latvian.nlf"
delete "$INSTDIR\Contrib\Language files\Latvian.nsh"
delete "$INSTDIR\Contrib\Language files\Lithuanian.nlf"
delete "$INSTDIR\Contrib\Language files\Lithuanian.nsh"
delete "$INSTDIR\Contrib\Language files\Luxembourgish.nlf"
delete "$INSTDIR\Contrib\Language files\Luxembourgish.nsh"
delete "$INSTDIR\Contrib\Language files\Macedonian.nlf"
delete "$INSTDIR\Contrib\Language files\Macedonian.nsh"
delete "$INSTDIR\Contrib\Language files\Malay.nlf"
delete "$INSTDIR\Contrib\Language files\Malay.nsh"
delete "$INSTDIR\Contrib\Language files\Mongolian.nlf"
delete "$INSTDIR\Contrib\Language files\Mongolian.nsh"
delete "$INSTDIR\Contrib\Language files\Norwegian.nlf"
delete "$INSTDIR\Contrib\Language files\Norwegian.nsh"
delete "$INSTDIR\Contrib\Language files\NorwegianNynorsk.nlf"
delete "$INSTDIR\Contrib\Language files\NorwegianNynorsk.nsh"
delete "$INSTDIR\Contrib\Language files\Polish.nlf"
delete "$INSTDIR\Contrib\Language files\Polish.nsh"
delete "$INSTDIR\Contrib\Language files\Portuguese.nlf"
delete "$INSTDIR\Contrib\Language files\Portuguese.nsh"
delete "$INSTDIR\Contrib\Language files\PortugueseBR.nlf"
delete "$INSTDIR\Contrib\Language files\PortugueseBR.nsh"
delete "$INSTDIR\Contrib\Language files\Romanian.nlf"
delete "$INSTDIR\Contrib\Language files\Romanian.nsh"
delete "$INSTDIR\Contrib\Language files\Russian.nlf"
delete "$INSTDIR\Contrib\Language files\Russian.nsh"
delete "$INSTDIR\Contrib\Language files\Serbian.nlf"
delete "$INSTDIR\Contrib\Language files\Serbian.nsh"
delete "$INSTDIR\Contrib\Language files\SerbianLatin.nlf"
delete "$INSTDIR\Contrib\Language files\SerbianLatin.nsh"
delete "$INSTDIR\Contrib\Language files\SimpChinese.nlf"
delete "$INSTDIR\Contrib\Language files\SimpChinese.nsh"
delete "$INSTDIR\Contrib\Language files\Slovak.nlf"
delete "$INSTDIR\Contrib\Language files\Slovak.nsh"
delete "$INSTDIR\Contrib\Language files\Slovenian.nlf"
delete "$INSTDIR\Contrib\Language files\Slovenian.nsh"
delete "$INSTDIR\Contrib\Language files\Spanish.nlf"
delete "$INSTDIR\Contrib\Language files\Spanish.nsh"
delete "$INSTDIR\Contrib\Language files\SpanishInternational.nlf"
delete "$INSTDIR\Contrib\Language files\SpanishInternational.nsh"
delete "$INSTDIR\Contrib\Language files\Swedish.nlf"
delete "$INSTDIR\Contrib\Language files\Swedish.nsh"
delete "$INSTDIR\Contrib\Language files\Thai.nlf"
delete "$INSTDIR\Contrib\Language files\Thai.nsh"
delete "$INSTDIR\Contrib\Language files\TradChinese.nlf"
delete "$INSTDIR\Contrib\Language files\TradChinese.nsh"
delete "$INSTDIR\Contrib\Language files\Turkish.nlf"
delete "$INSTDIR\Contrib\Language files\Turkish.nsh"
delete "$INSTDIR\Contrib\Language files\Ukrainian.nlf"
delete "$INSTDIR\Contrib\Language files\Ukrainian.nsh"
delete "$INSTDIR\Contrib\Language files\Uzbek.nlf"
delete "$INSTDIR\Contrib\Language files\Uzbek.nsh"
delete "$INSTDIR\Contrib\Language files\Welsh.nlf"
delete "$INSTDIR\Contrib\Language files\Welsh.nsh"
delete "$INSTDIR\Contrib\Modern UI\ioSpecial.ini"
delete "$INSTDIR\Contrib\Modern UI\System.nsh"
delete "$INSTDIR\Contrib\Modern UI 2\Deprecated.nsh"
delete "$INSTDIR\Contrib\Modern UI 2\Interface.nsh"
delete "$INSTDIR\Contrib\Modern UI 2\Localization.nsh"
delete "$INSTDIR\Contrib\Modern UI 2\MUI2.nsh"
delete "$INSTDIR\Contrib\Modern UI 2\Pages\Components.nsh"
delete "$INSTDIR\Contrib\Modern UI 2\Pages\Directory.nsh"
delete "$INSTDIR\Contrib\Modern UI 2\Pages\Finish.nsh"
delete "$INSTDIR\Contrib\Modern UI 2\Pages\InstallFiles.nsh"
delete "$INSTDIR\Contrib\Modern UI 2\Pages\License.nsh"
delete "$INSTDIR\Contrib\Modern UI 2\Pages\StartMenu.nsh"
delete "$INSTDIR\Contrib\Modern UI 2\Pages\UninstallConfirm.nsh"
delete "$INSTDIR\Contrib\Modern UI 2\Pages\Welcome.nsh"
delete "$INSTDIR\Contrib\Modern UI 2\Pages.nsh"
delete "$INSTDIR\Contrib\UIs\default.exe"
delete "$INSTDIR\Contrib\UIs\modern.exe"
delete "$INSTDIR\Contrib\UIs\modern_headerbmp.exe"
delete "$INSTDIR\Contrib\UIs\modern_headerbmpr.exe"
delete "$INSTDIR\Contrib\UIs\modern_nodesc.exe"
delete "$INSTDIR\Contrib\UIs\modern_smalldesc.exe"
delete "$INSTDIR\Contrib\UIs\sdbarker_tiny.exe"
delete "$INSTDIR\Contrib\zip2exe\Base.nsh"
delete "$INSTDIR\Contrib\zip2exe\Classic.nsh"
delete "$INSTDIR\Contrib\zip2exe\Modern.nsh"
delete "$INSTDIR\COPYING"
delete "$INSTDIR\Docs\AdvSplash\advsplash.txt"
delete "$INSTDIR\Docs\Banner\Readme.txt"
delete "$INSTDIR\Docs\BgImage\BgImage.txt"
delete "$INSTDIR\Docs\Dialer\Dialer.txt"
delete "$INSTDIR\Docs\InstallOptions\Changelog.txt"
delete "$INSTDIR\Docs\InstallOptions\Readme.html"
delete "$INSTDIR\Docs\makensisw\License.txt"
delete "$INSTDIR\Docs\makensisw\Readme.txt"
delete "$INSTDIR\Docs\Math\Math.txt"
delete "$INSTDIR\Docs\Modern UI\Changelog.txt"
delete "$INSTDIR\Docs\Modern UI\images\closed.gif"
delete "$INSTDIR\Docs\Modern UI\images\header.gif"
delete "$INSTDIR\Docs\Modern UI\images\open.gif"
delete "$INSTDIR\Docs\Modern UI\images\screen1.png"
delete "$INSTDIR\Docs\Modern UI\images\screen2.png"
delete "$INSTDIR\Docs\Modern UI\License.txt"
delete "$INSTDIR\Docs\Modern UI\Readme.html"
delete "$INSTDIR\Docs\Modern UI 2\images\closed.gif"
delete "$INSTDIR\Docs\Modern UI 2\images\header.gif"
delete "$INSTDIR\Docs\Modern UI 2\images\open.gif"
delete "$INSTDIR\Docs\Modern UI 2\images\screen1.png"
delete "$INSTDIR\Docs\Modern UI 2\images\screen2.png"
delete "$INSTDIR\Docs\Modern UI 2\License.txt"
delete "$INSTDIR\Docs\Modern UI 2\Readme.html"
delete "$INSTDIR\Docs\MultiUser\Readme.html"
delete "$INSTDIR\Docs\nsDialogs\Readme.html"
delete "$INSTDIR\Docs\nsExec\nsExec.txt"
delete "$INSTDIR\Docs\NSISdl\License.txt"
delete "$INSTDIR\Docs\NSISdl\ReadMe.txt"
delete "$INSTDIR\Docs\Splash\splash.txt"
delete "$INSTDIR\Docs\StartMenu\Readme.txt"
delete "$INSTDIR\Docs\StrFunc\StrFunc.txt"
delete "$INSTDIR\Docs\System\System.html"
delete "$INSTDIR\Docs\System\WhatsNew.txt"
delete "$INSTDIR\Docs\TextReplace\Readme.txt"
delete "$INSTDIR\Docs\VPatch\Readme.html"
delete "$INSTDIR\Example\NewTextreplaceTestA.nsi"
delete "$INSTDIR\Example\NewTextreplaceTestW.nsi"
delete "$INSTDIR\Example\TextFiles\FindItAnsi1251.txt"
delete "$INSTDIR\Example\TextFiles\FindItUTF16LE.txt"
delete "$INSTDIR\Example\TextFiles\FindItUTF8.txt"
delete "$INSTDIR\Example\TextFiles\inputAnsi1251.txt"
delete "$INSTDIR\Example\TextFiles\inputUTF16LE.txt"
delete "$INSTDIR\Example\TextFiles\inputUTF8.txt"
delete "$INSTDIR\Example\TextFiles\ReplaceItAnsi.txt"
delete "$INSTDIR\Example\TextFiles\ReplaceItRecode.txt"
delete "$INSTDIR\Example\TextFiles\ReplaceWithUTF16BE.txt"
delete "$INSTDIR\Example\TextFiles\ReplaceWithUTF16LE.txt"
delete "$INSTDIR\Examples\AdvSplash\Example.nsi"
delete "$INSTDIR\Examples\Banner\Example.nsi"
delete "$INSTDIR\Examples\BgImage\Example.nsi"
delete "$INSTDIR\Examples\bigtest.nsi"
delete "$INSTDIR\Examples\example1.nsi"
delete "$INSTDIR\Examples\example2.nsi"
delete "$INSTDIR\Examples\FileFunc.ini"
delete "$INSTDIR\Examples\FileFunc.nsi"
delete "$INSTDIR\Examples\FileFuncTest.nsi"
delete "$INSTDIR\Examples\gfx.nsi"
delete "$INSTDIR\Examples\InstallOptions\test.ini"
delete "$INSTDIR\Examples\InstallOptions\test.nsi"
delete "$INSTDIR\Examples\InstallOptions\testimgs.ini"
delete "$INSTDIR\Examples\InstallOptions\testimgs.nsi"
delete "$INSTDIR\Examples\InstallOptions\testlink.ini"
delete "$INSTDIR\Examples\InstallOptions\testlink.nsi"
delete "$INSTDIR\Examples\InstallOptions\testnotify.ini"
delete "$INSTDIR\Examples\InstallOptions\testnotify.nsi"
delete "$INSTDIR\Examples\languages.nsi"
delete "$INSTDIR\Examples\Library.nsi"
delete "$INSTDIR\Examples\LogicLib.nsi"
delete "$INSTDIR\Examples\makensis.nsi"
delete "$INSTDIR\Examples\Math\math.nsi"
delete "$INSTDIR\Examples\Math\MathTest.exe"
delete "$INSTDIR\Examples\Math\mathtest.ini"
delete "$INSTDIR\Examples\Math\mathtest.nsi"
delete "$INSTDIR\Examples\Math\mathtest.txt"
delete "$INSTDIR\Examples\Memento.nsi"
delete "$INSTDIR\Examples\Modern UI\Basic.nsi"
delete "$INSTDIR\Examples\Modern UI\HeaderBitmap.nsi"
delete "$INSTDIR\Examples\Modern UI\MultiLanguage.nsi"
delete "$INSTDIR\Examples\Modern UI\StartMenu.nsi"
delete "$INSTDIR\Examples\Modern UI\WelcomeFinish.nsi"
delete "$INSTDIR\Examples\nsDialogs\example.nsi"
delete "$INSTDIR\Examples\nsDialogs\InstallOptions.nsi"
delete "$INSTDIR\Examples\nsDialogs\timer.nsi"
delete "$INSTDIR\Examples\nsDialogs\welcome.nsi"
delete "$INSTDIR\Examples\nsExec\test.nsi"
delete "$INSTDIR\Examples\one-section.nsi"
delete "$INSTDIR\Examples\Plugin\exdll-vs2008.sln"
delete "$INSTDIR\Examples\Plugin\exdll-vs2008.vcproj"
delete "$INSTDIR\Examples\Plugin\exdll.c"
delete "$INSTDIR\Examples\Plugin\exdll.dpr"
delete "$INSTDIR\Examples\Plugin\exdll.dsp"
delete "$INSTDIR\Examples\Plugin\exdll.dsw"
delete "$INSTDIR\Examples\Plugin\exdll_with_unit.dpr"
delete "$INSTDIR\Examples\Plugin\extdll.inc"
delete "$INSTDIR\Examples\Plugin\nsis\api.h"
delete "$INSTDIR\Examples\Plugin\nsis\pluginapi.h"
delete "$INSTDIR\Examples\Plugin\nsis\pluginapi.lib"
delete "$INSTDIR\Examples\Plugin\nsis.pas"
delete "$INSTDIR\Examples\primes.nsi"
delete "$INSTDIR\Examples\rtest.nsi"
delete "$INSTDIR\Examples\silent.nsi"
delete "$INSTDIR\Examples\Splash\Example.nsi"
delete "$INSTDIR\Examples\StartMenu\Example.nsi"
delete "$INSTDIR\Examples\StrFunc.nsi"
delete "$INSTDIR\Examples\System\Resource.dll"
delete "$INSTDIR\Examples\System\SysFunc.nsh"
delete "$INSTDIR\Examples\System\System.nsh"
delete "$INSTDIR\Examples\System\System.nsi"
delete "$INSTDIR\Examples\TextFunc.ini"
delete "$INSTDIR\Examples\TextFunc.nsi"
delete "$INSTDIR\Examples\TextFuncTest.nsi"
delete "$INSTDIR\Examples\TextReplace\TextReplaceTest.nsi"
delete "$INSTDIR\Examples\UserInfo\UserInfo.nsi"
delete "$INSTDIR\Examples\UserVars.nsi"
delete "$INSTDIR\Examples\VersionInfo.nsi"
delete "$INSTDIR\Examples\viewhtml.nsi"
delete "$INSTDIR\Examples\VPatch\example.nsi"
delete "$INSTDIR\Examples\VPatch\newfile.txt"
delete "$INSTDIR\Examples\VPatch\oldfile.txt"
delete "$INSTDIR\Examples\VPatch\patch.pat"
delete "$INSTDIR\Examples\waplugin.nsi"
delete "$INSTDIR\Examples\WordFunc.ini"
delete "$INSTDIR\Examples\WordFunc.nsi"
delete "$INSTDIR\Examples\WordFuncTest.nsi"
delete "$INSTDIR\Include\Colors.nsh"
delete "$INSTDIR\Include\FileFunc.nsh"
delete "$INSTDIR\Include\InstallOptions.nsh"
delete "$INSTDIR\Include\LangFile.nsh"
delete "$INSTDIR\Include\Library.nsh"
delete "$INSTDIR\Include\LogicLib.nsh"
delete "$INSTDIR\Include\Memento.nsh"
delete "$INSTDIR\Include\MUI.nsh"
delete "$INSTDIR\Include\MUI2.nsh"
delete "$INSTDIR\Include\MultiUser.nsh"
delete "$INSTDIR\Include\NewTextreplace.nsh"
delete "$INSTDIR\Include\nsDialogs.nsh"
delete "$INSTDIR\Include\ProcessFunc.nsh"
delete "$INSTDIR\Include\Sections.nsh"
delete "$INSTDIR\Include\StrFunc.nsh"
delete "$INSTDIR\Include\TextFunc.nsh"
delete "$INSTDIR\Include\TextReplace.nsh"
delete "$INSTDIR\Include\UnInstallLog.nsh"
delete "$INSTDIR\Include\UpgradeDLL.nsh"
delete "$INSTDIR\Include\Util.nsh"
delete "$INSTDIR\Include\VB6RunTime.nsh"
delete "$INSTDIR\Include\VPatchLib.nsh"
delete "$INSTDIR\Include\Win\WinDef.nsh"
delete "$INSTDIR\Include\Win\WinError.nsh"
delete "$INSTDIR\Include\Win\WinNT.nsh"
delete "$INSTDIR\Include\Win\WinUser.nsh"
delete "$INSTDIR\Include\WinCore.nsh"
delete "$INSTDIR\Include\WinMessages.nsh"
delete "$INSTDIR\Include\WinVer.nsh"
delete "$INSTDIR\Include\WinVer2.nsh"
delete "$INSTDIR\Include\WMI.nsh"
delete "$INSTDIR\Include\WordFunc.nsh"
delete "$INSTDIR\Include\x64.nsh"
delete "$INSTDIR\makensis.exe"
delete "$INSTDIR\makensisw.exe"
delete "$INSTDIR\Menu\images\header.gif"
delete "$INSTDIR\Menu\images\line.gif"
delete "$INSTDIR\Menu\images\site.gif"
delete "$INSTDIR\Menu\index.html"
delete "$INSTDIR\NSIS.chm"
delete "$INSTDIR\NSIS.exe"
delete "$INSTDIR\nsisconf.nsh"
delete "$INSTDIR\Plugins\AdvSplash.dll"
delete "$INSTDIR\Plugins\Banner.dll"
delete "$INSTDIR\Plugins\BgImage.dll"
delete "$INSTDIR\Plugins\CRCCheck.dll"
delete "$INSTDIR\Plugins\Dialer.dll"
delete "$INSTDIR\Plugins\InstallOptions.dll"
delete "$INSTDIR\Plugins\LangDLL.dll"
delete "$INSTDIR\Plugins\Math.dll"
delete "$INSTDIR\Plugins\md5dll.dll"
delete "$INSTDIR\Plugins\NewTextreplace.dll"
delete "$INSTDIR\Plugins\nsDialogs.dll"
delete "$INSTDIR\Plugins\nsExec.dll"
delete "$INSTDIR\Plugins\NSISdl.dll"
delete "$INSTDIR\Plugins\Splash.dll"
delete "$INSTDIR\Plugins\StartMenu.dll"
delete "$INSTDIR\Plugins\System.dll"
delete "$INSTDIR\Plugins\TextReplace.dll"
delete "$INSTDIR\Plugins\TypeLib.dll"
delete "$INSTDIR\Plugins\UserInfo.dll"
delete "$INSTDIR\Plugins\VPatch.dll"
delete "$INSTDIR\Plugins\WPatch.dll"
delete "$INSTDIR\Plugins\WPatchW.dll"
delete "$INSTDIR\Stubs\bzip2"
delete "$INSTDIR\Stubs\bzip2_solid"
delete "$INSTDIR\Stubs\lzma"
delete "$INSTDIR\Stubs\lzma_solid"
delete "$INSTDIR\Stubs\uninst"
delete "$INSTDIR\Stubs\zlib"
delete "$INSTDIR\Stubs\zlib_solid"
delete "$INSTDIR\uninst-nsis.exe"
Не спеша ковырялся минут 5, не более.
И еще непонятно, зачем вам удалять папку, которую вы не создавали?
Как решить эту проблему,рациональным способом?
теоретически код возврата должен быть после импорта, но на практике видимо иначе »
Хотите сказать, команда не ждёт завершения исполнения импорта в реестр? Честно сказать, не использовал конкретно эту команду этого плагина, проверять лень
Воспользуйтесь исполнением regedit напрямую (хотя в документации к плагину сказано, что импорт также производится через regedit)
ExecWait '$WINDIR\regedit.exe /s "путь к reg файлу"'
Столкнулся с необходимостью в деинсталляторе удалять только установленные инсталлером файлы, а не всю папку. »
Неужели нет простого и лёгкого способа решить указанную проблему? »
1. Создавать список файлов вручную и закидывать их в скрипт, как предложил выше Kopejkin
2. Выполнять поиск файлов командой Locate (http://kav-soft.ru/onlineHelp/NSIS/index.html?page=source%2FNSIS_help%2FLocate.html) в папке установки после распаковки всех файлов и создавать список в INI формате, записывая в файл, в денисталляторе обрабатывать файл и удалять файлы проходясь по списку.
3. Если используете графический интерфейс при установке, можно попробовать поковырять пример кода LOG-файл установки (http://kav-soft.ru/onlineHelp/NSIS/index.html?page=source%2Fcode_example%2Fdumplog.html) из нашего справочника, за место записи лог-файла парсить каждую строку на предмет типа команды, т.е. прочитали строку, в ней например такой текст:
Создание ярлыка: C:\Program Files (x86)\Моя программа\explorer.lnk
берём из строки первые X символов (для команды ярлыка это 17 символов, текст+пробел), если эти первые 17 символов = строке Создание ярлыка: , то отрезаем от строки первые 17 символов и остаётся только путь к ярлыку, его записываем в INI файл в секцию с ярлыками
По этой же логике делаем с другими командами, создание папок, копирование файлов и т.д....
"резать" строку по количеству символов можно командой StrCpy (http://kav-soft.ru/onlineHelp/NSIS/index.html?page=source%2Fcode_example%2Fstrfunc%2Fstrcpy.html)
ExecWait '$WINDIR\regedit.exe /s "путь к reg файлу"' »
Это само собой...просто я думал в справке имели введу эквивалент результату,а не то что юзают запуск regedit'a
спс за уточнение))
Было бы хорошо реализовать через System::Call "advapi32:: ))))
Если найду время и желание - буду пробовать с помощью WinAPI реализовать...
Спасибо, за советы!
К сожалению, на мой взгляд, всё это - костыли: скрипты, списки файлов, парсинг... :(
И еще непонятно, зачем вам удалять папку, которую вы не создавали? »
Ну, например, при необходимости убить результаты деятельности программы: логи, конфиги и т.п.
Kopejkin
28-09-2015, 10:30
Ну, например... »
Руководство пользователя. раздел 4.9.1.8. RMDir (стр. 66)
Dodakaedr
28-09-2015, 21:09
Как записать путь в таком виде в реестре? C:\PROGRA~1\PHOTOL~1\PHOTOL~1.EXE "%1"
Dodakaedr,
""C:\PROGRA~1\PHOTOL~1\PHOTOL~1.EXE $\"%1$\""
WriteRegStr HKLM "SOFTWARE\MyProg" "Path" ""C:\PROGRA~1\PHOTOL~1\PHOTOL~1.EXE $\"%1$\""
Как записать путь в таком виде в реестре? »
Используйте команду GetFullPathName с ключем /SHORT, учтите, что в пути не должно быть символов типа "%1", в команду посылаете только путь, а после преобразования пути уже можете добавить к нему остальное
GetFullPathName /SHORT $0 "$PROGRAMFILES"
StrCpy $0 '$0 "%1"'
MessageBox MB_OK|MB_ICONINFORMATION "$0"
+Эту команду можно выполнять только если директория существует, в противном случае (если папки не существует) - вам вернётся пустое значение
Протестируйте в общем
Есть также WinAPI функция, делающая тоже самое
StrCpy $0 '$PROGRAMFILES'
System::Call 'kernel32::GetShortPathName(t r0, t .r0, i ${NSIS_MAX_STRLEN}) i .r1'
StrCpy $0 '$0 "%1"'
MessageBox MB_OK|MB_ICONINFORMATION "$0"
ZaxBoys66
30-09-2015, 17:06
Name "NSIS archive folder"
Page instfiles
OutFile "NSIS archive folder.exe"
InstallDir "$EXEDIR\NSIS archive folder"
SetCompressor /SOLID lzma
!define RUNASADMIN
!ifndef RUNASADMIN
RequestExecutionLevel 'admin' ;Require admin rights on NT6+ (When UAC is turned on)
!else
RequestExecutionLevel 'admin'
!endif
!include "FileFunc.nsh"
!include "LogicLib.nsh"
!include "TextFunc.nsh"
!include "WordFunc.nsh"
!insertmacro GetSize
Function .onInit
File "/oname=$TEMP\7za.exe" "7za\7za.exe"
FunctionEnd
var /global InSize
var /global OutSize
var /global SZ_1
var /global SZ_2
var /global SZ_3
Section "Program" P1
DetailPrint "Compressored filder..."
Setoutpath "$INSTDIR"
WriteINIStr "$INSTDIR\CatsSoft © 2015.url" "InternetShortcut" "URL" "http://portableroapps.blogspot.com/"
${If} ${FileExists} "$INSTDIR\CatsSoft © 2015.url"
nsExec::ExecToLog '"$TEMP\7za.exe" a "archive.7z" "$INSTDIR"'
${EndIf}
Delete "$TEMP\7za.exe"
${GetSize} "$INSTDIR" "/M=*.* /S=0K" $SZ_1 $SZ_2 $SZ_3
StrCpy $InSize 1024
StrCpy $InSize $SZ_1 / 1024
StrCpy $0 0
StrCpy $InSize $SZ_1
StrCpy $1 $InSize
IntCmp $1 1024 +3 +1 +3
StrCpy $1 "$1.0 KB"
Goto +12
IntOp $1 $1 * 100
IntOp $1 $1 / 1024
StrCpy $2 $1 "" -1
StrCpy $3 $1 1 -2
StrCpy $1 $1 -2
IntCmp $2 5 +1 +2 +1
IntOp $3 $3 + 1
StrCmp $3 10 +1 +3
StrCpy $3 0
IntOp $1 $1 + 1
StrCpy $1 "$1.$3 MB"
/*
How can pass here and GB
*/
StrCpy $OutSize $1
Messagebox MB_OK|MB_USERICON 'Size folder: $OutSize'
SectionEnd
Planetamars
02-10-2015, 19:05
Подскажите как изменить путь в скрипте при установке портативной и обычной версии программы .
Planetamars
02-10-2015, 21:51
ZaxBoys66, Спасибо огромное ! Буду пытаться прикрутить к своему скрипту.
Иногда в Windows x64 необходимо определить разрядность установленного приложения (исполняемого файла).
Причём, установленного не в $PROGRAMFILES64 или $PROGRAMFILES, что могло бы служить ориентиром разрядности. А ещё имя исполняемого файла одинаково и для x32 и для x64. Как тут быть ? :)
Поможет функция GetBinaryType.
OutFile "GetBinaryType.exe"
/*
https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa364819(v=vs.85).aspx
0: result := '32-bit Windows-based';
1: result := 'MS-DOS – based';
2: result := '16-bit Windows-based';
3: result := 'PIF for MS-DOS – based';
4: result := 'POSIX – based';
5: result := '16bit-OS/2';
6: result := '64-bit Windows-based';
*/
Section
StrCpy $0 "$EXEDIR\unknown_bit.exe"
System::Call `kernel32::GetBinaryType(t r0, *i .r2)`
MessageBox MB_OK "$2"
SectionEnd
Когда то рассматривалось, как определять дефолтовое приложение (путь и имя) для открытия определённых типов файлов с помошью функции FindExecutable.
Ту же операцию можно сделать немного проще с помощью функции AssocQueryString.
!define ASSOCSTR_EXECUTABLE 2
!define ASSOCF_NOTRUNCATE 0x00000020
!define ASSOCF_REMAPRUNDLL 0x00000080
!define ASSOCF_NOFIXUPS 0x00000100
System::Call 'SHLWAPI::AssocQueryString(i ${ASSOCF_NOTRUNCATE}|${ASSOCF_REMAPRUNDLL}|${ASSOCF_NOFIXUPS}, i ${ASSOCSTR_EXECUTABLE}, t ".html", t "open", t.r1, *i ${NSIS_MAX_STRLEN})i.r0'
MessageBox MB_OK "EXECUTABLE $1"
Оба эти способа нормально работают в Windows 7, но к сожалению , не в Windows 10...
Используя AssocQueryString , в Windows 10, для штатных интегрированных приложений получаем - C:\Windows\system32\LaunchWinApp.exe
Возможно это связано с особенностями работы собственных приложений в новой ОС...
Для автономно установленных приложений (например, для Хрома и т.д. ) - всё нормально.
Как крайний выход из положения, в Windows 10 можно получить только имя дефолтового приложения, если использовать константу ASSOCSTR_FRIENDLYAPPNAME
!define ASSOCSTR_FRIENDLYAPPNAME 4
System::Call 'SHLWAPI::AssocQueryString(i ${ASSOCF_NOTRUNCATE}|${ASSOCF_REMAPRUNDLL}|${ASSOCF_NOFIXUPS}, i ${ASSOCSTR_FRIENDLYAPPNAME}, t ".htm", t "open", t.r1, *i ${NSIS_MAX_STRLEN})i.r0'
MessageBox MB_OK "FRIENDLYAPPNAME $1"
Всем доброго времени суток! Имеется проблема решение которой затрудняюсь найти. В коде скрипта подключен плагин "nsArray". Массив полноценно, нормально работает при использовании его элементов. НО, при условии, что текст элементов написан на английском. Как только в элементе массива появляется русский текст, программа начинает крашиться, на этапе компиляции ошибок нет. Пробовал сохранять исходник в разных кодировках, безрезультатно. Сталкивался кто-нибудь?
nsArray::SetList MyArray "7-Zip" "Любой текст" "Adobe Reader" "Logitech Webcam" /end
${nsArray_ToString} MyArray $R9
kotkovets
19-10-2015, 08:37
плагин "nsArray" »
так к "буржую" обращайся с поддержкой кирилицы
Имеется проблема решение которой затрудняюсь найти. В коде скрипта подключен плагин "nsArray"... Как только в элементе массива появляется русский текст, программа начинает крашиться »
Не вижу проблем с кириллицей. Использовал NSIS v3.0b2, сценарий в кодировке UTF-8, активирован флаг компиляции Unicode.
http://savepic.org/7805263.png
wolkow70
22-10-2015, 14:06
На Windows 10 выполняю
${WinVerGetMajor} $R0
${WinVerGetMinor} $R1
StrCpy $R0 $R0$R1
В результате в $R0 = 62, что соответствует Windows 8...
Как лучше определить, что юзаем десятку?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC