PDA

Показать полную графическую версию : .: NSIS - все вопросы :. часть 2.


Страниц : 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

Kopejkin
26-09-2015, 00:14
...в этом случае пишется..»
А где у вас записаны все ваши файлы? Напишите все свои файлы, они и запишутся в лог.

Igor M
26-09-2015, 12:19
А где у вас записаны все ваши файлы? Напишите все свои файлы, они и запишутся в лог. »
Все файлы я записать не могу, ибо их много и их набор меняется от сборки к сборке. Также имеется некая структура вложенных каталогов.

nfs911
26-09-2015, 22:55
Доброго времени суток...такой момент

;В данном случае ключ реестра не успевает импортироваться
${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, не более.

И еще непонятно, зачем вам удалять папку, которую вы не создавали?

K.A.V.
27-09-2015, 21:44
Как решить эту проблему,рациональным способом?
теоретически код возврата должен быть после импорта, но на практике видимо иначе »
Хотите сказать, команда не ждёт завершения исполнения импорта в реестр? Честно сказать, не использовал конкретно эту команду этого плагина, проверять лень
Воспользуйтесь исполнением 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)

nfs911
27-09-2015, 22:39
ExecWait '$WINDIR\regedit.exe /s "путь к reg файлу"' »
Это само собой...просто я думал в справке имели введу эквивалент результату,а не то что юзают запуск regedit'a
спс за уточнение))
Было бы хорошо реализовать через System::Call "advapi32:: ))))
Если найду время и желание - буду пробовать с помощью WinAPI реализовать...

Igor M
28-09-2015, 00:16
Спасибо, за советы!
К сожалению, на мой взгляд, всё это - костыли: скрипты, списки файлов, парсинг... :(

И еще непонятно, зачем вам удалять папку, которую вы не создавали? »
Ну, например, при необходимости убить результаты деятельности программы: логи, конфиги и т.п.

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"

nfs911
28-09-2015, 22:59
Dodakaedr,


""C:\PROGRA~1\PHOTOL~1\PHOTOL~1.EXE $\"%1$\""
WriteRegStr HKLM "SOFTWARE\MyProg" "Path" ""C:\PROGRA~1\PHOTOL~1\PHOTOL~1.EXE $\"%1$\""

K.A.V.
29-09-2015, 00:15
Как записать путь в таком виде в реестре? »
Используйте команду 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, Спасибо огромное ! Буду пытаться прикрутить к своему скрипту.

MKN
06-10-2015, 18:20
Иногда в 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

MKN
10-10-2015, 14:37
Когда то рассматривалось, как определять дефолтовое приложение (путь и имя) для открытия определённых типов файлов с помошью функции 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"

lavey13
17-10-2015, 14:49
Всем доброго времени суток! Имеется проблема решение которой затрудняюсь найти. В коде скрипта подключен плагин "nsArray". Массив полноценно, нормально работает при использовании его элементов. НО, при условии, что текст элементов написан на английском. Как только в элементе массива появляется русский текст, программа начинает крашиться, на этапе компиляции ошибок нет. Пробовал сохранять исходник в разных кодировках, безрезультатно. Сталкивался кто-нибудь?

nsArray::SetList MyArray "7-Zip" "Любой текст" "Adobe Reader" "Logitech Webcam" /end
${nsArray_ToString} MyArray $R9

kotkovets
19-10-2015, 08:37
плагин "nsArray" »
так к "буржую" обращайся с поддержкой кирилицы

Flix
19-10-2015, 22:38
Имеется проблема решение которой затрудняюсь найти. В коде скрипта подключен плагин "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