Посмотрите, может это то, что вам нужно
читать дальше »
Код:
Section "Sec1" Sec1
...
WriteUninstaller "$INSTDIR\Sec1\uninstall.exe"
SectionEnd
Section "Sec2" Sec2
...
WriteUninstaller "$INSTDIR\Sec2\uninstall.exe"
SectionEnd
Section "Sec3" Sec3
...
WriteUninstaller "$INSTDIR\Sec3\uninstall.exe"
SectionEnd
!include "FileFunc.nsh"
Section Uninstall
${GetParent} "$EXEPATH" $R0
StrCmp $R0 "$INSTDIR\Sec1" 0 +2
call UnInstall_SEC1
StrCmp $R0 "$INSTDIR\Sec2" 0 +2
call UnInstall_SEC2
StrCmp $R0 "$INSTDIR\Sec3" 0 +2
call UnInstall_SEC3
SetAutoClose true
SectionEnd
Function UnInstall_SEC1
...
FunctionEnd
Function UnInstall_SEC2
...
FunctionEnd
Function UnInstall_SEC3
...
FunctionEnd
*Команда ${GetParent} помещает в переменную $R0 путь к запущенному деинсталлятору