📄 filezilla.nsi
字号:
Pop $R2
Pop $R1
Exch $R0
FunctionEnd
; StrStr
; input, top of stack = string to search for
; top of stack-1 = string to search in
; output, top of stack (replaces with the portion of the string remaining)
; modifies no other variables.
;
; Usage:
; Push "this is a long ass string"
; Push "ass"
; Call StrStr
; Pop $R0
; ($R0 at this point is "ass string")
Function StrStr
Exch $R1 ; st=haystack,old$R1, $R1=needle
Exch ; st=old$R1,haystack
Exch $R2 ; st=old$R1,old$R2, $R2=haystack
Push $R3
Push $R4
Push $R5
StrLen $R3 $R1
StrCpy $R4 0
; $R1=needle
; $R2=haystack
; $R3=len(needle)
; $R4=cnt
; $R5=tmp
loop:
StrCpy $R5 $R2 $R3 $R4
StrCmp $R5 $R1 done
StrCmp $R5 "" done
IntOp $R4 $R4 + 1
Goto loop
done:
StrCpy $R1 $R2 "" $R4
Pop $R5
Pop $R4
Pop $R3
Pop $R2
Exch $R1
FunctionEnd
!include "download.nsh"
;--------------------------------
;Descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecFileZilla} $(SecFileZillaDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${SecDocumentation} $(SecDocumentationDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${SecEnglishDocumentation} $(SecEnglishDocumentationDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${SecFrenchDocumentation} $(SecFrenchDocumentationDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${SecLangFiles} $(SecLangFilesDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${SecSourceCode} $(SecSourceCodeDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${SecStartMenu} $(SecStartMenuDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${SecDesktopIcon} $(SecDesktopIconDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${SecDebug} $(SecDebugDesc)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
;--------------------------------
;Uninstaller section
Section "Uninstall"
;Add your stuff here
; remove registry keys
MessageBox MB_ICONQUESTION|MB_YESNO $(un.QuestionDeleteRegistry) IDNO NoRegDelete
DeleteRegKey HKCU "Software\FileZilla"
DeleteRegKey HKLM "Software\FileZilla"
NoRegDelete:
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\FileZilla"
; remove files
Delete $INSTDIR\FileZilla.exe
Delete $INSTDIR\FileZilla.chm
Delete $INSTDIR\FileZillaFrench.chm
Delete $INSTDIR\dbghelp.dll
Delete $INSTDIR\FzGSS.dll
Delete $INSTDIR\FzResBu.dll
Delete $INSTDIR\FzResCh.dll
Delete $INSTDIR\FzResChs.dll
Delete $INSTDIR\FzResDe.dll
Delete $INSTDIR\FzResEs.dll
Delete $INSTDIR\FzResFr.dll
Delete $INSTDIR\FzResHu.dll
Delete $INSTDIR\FzResIt.dll
Delete $INSTDIR\FzResJp.dll
Delete $INSTDIR\FzResKr.dll
Delete $INSTDIR\FzResPo.dll
Delete $INSTDIR\FzResRu.dll
Delete $INSTDIR\libeay32.dll
Delete $INSTDIR\FzSFtp.exe"
Delete $INSTDIR\ssleay32.dll
Delete $INSTDIR\GPL.html
Delete $INSTDIR\puttylicense.html
Delete $INSTDIR\legal.htm
Delete $INSTDIR\readme.htm
; Remove source code
Delete $INSTDIR\build.bat
Delete $INSTDIR\source\*.cpp"
Delete $INSTDIR\source\*.h"
Delete $INSTDIR\source\FileZilla.clw"
Delete $INSTDIR\source\FileZilla.dsw"
Delete $INSTDIR\source\FileZilla.dsp"
Delete $INSTDIR\source\FileZilla.rc"
Delete $INSTDIR\source\MakeIDH.exe"
; source\res
Delete $INSTDIR\source\res\*.ico
Delete $INSTDIR\source\res\*.bmp
Delete $INSTDIR\source\res\FileZilla.rc2
Delete $INSTDIR\source\res\manifest.xml
; source\misc
Delete $INSTDIR\source\misc\*.cpp
Delete $INSTDIR\source\misc\*.h
Delete $INSTDIR\source\misc\*.hpp
; source\gss
Delete $INSTDIR\source\gss\*.h
; source\documentation
Delete $INSTDIR\source\documentation\*.htm"
Delete $INSTDIR\source\documentation\*.css"
Delete $INSTDIR\source\documentation\*.hhc"
Delete $INSTDIR\source\documentation\*.hhp"
Delete $INSTDIR\source\documentation\*.hhk"
Delete $INSTDIR\source\documentation\*.png"
; source\documentation\french
Delete $INSTDIR\source\documentation\french\*.htm"
Delete $INSTDIR\source\documentation\french\*.css"
Delete $INSTDIR\source\documentation\french\*.hhc"
Delete $INSTDIR\source\documentation\french\*.hhp"
Delete $INSTDIR\source\documentation\french\*.hhk"
Delete $INSTDIR\source\documentation\french\*.png"
; source\install
Delete $INSTDIR\source\install\autobuild
Delete $INSTDIR\source\install\uninstall.ico
Delete $INSTDIR\source\install\FileZilla.nsi
Delete $INSTDIR\source\install\license.txt
Delete $INSTDIR\source\install\download.nsh
Delete $INSTDIR\source\install\download.ini
Delete $INSTDIR\source\install\settings.ini
; source\openssl
Delete $INSTDIR\source\openssl\*.h
; English language files
Delete "$INSTDIR\source\LanguageDLLs\English\resource.h"
Delete "$INSTDIR\source\LanguageDLLs\English\FzResEn.dsp"
Delete "$INSTDIR\source\LanguageDLLs\English\FzResEn.rc"
Delete "$INSTDIR\source\LanguageDLLs\English\res\toolbar.bmp"
Delete "$INSTDIR\source\LanguageDLLs\English\fz_english.nsh"
; Bulgarian language files
Delete "$INSTDIR\source\LanguageDLLs\Bulgarian\resource.h"
Delete "$INSTDIR\source\LanguageDLLs\Bulgarian\FzResBu.dsp"
Delete "$INSTDIR\source\LanguageDLLs\Bulgarian\FzResBu.rc"
Delete "$INSTDIR\source\LanguageDLLs\Bulgarian\res\toolbar.bmp"
Delete "$INSTDIR\source\LanguageDLLs\Bulgarian\fz_bulgarian.nsh"
; Chinese (Simplified) language files
Delete "$INSTDIR\source\LanguageDLLs\SimplifiedChinese\resource.h"
Delete "$INSTDIR\source\LanguageDLLs\SimplifiedChinese\FzResChs.dsp"
Delete "$INSTDIR\source\LanguageDLLs\SimplifiedChinese\FzResChs.rc"
Delete "$INSTDIR\source\LanguageDLLs\SimplifiedChinese\res\toolbar.bmp"
Delete "$INSTDIR\source\LanguageDLLs\SimplifiedChinese\fz_simpchinese.nsh"
; Chinese (Traditional) language files
Delete "$INSTDIR\source\LanguageDLLs\TraditionalChinese\resource.h"
Delete "$INSTDIR\source\LanguageDLLs\TraditionalChinese\FzResCh.dsp"
Delete "$INSTDIR\source\LanguageDLLs\TraditionalChinese\FzResCh.rc"
Delete "$INSTDIR\source\LanguageDLLs\TraditionalChinese\res\toolbar.bmp"
Delete "$INSTDIR\source\LanguageDLLs\TraditionalChinese\fz_tradchinese.nsh"
; French language files
Delete "$INSTDIR\source\LanguageDLLs\French\resource.h"
Delete "$INSTDIR\source\LanguageDLLs\French\FzResFr.dsp"
Delete "$INSTDIR\source\LanguageDLLs\French\FzResFr.rc"
Delete "$INSTDIR\source\LanguageDLLs\French\res\toolbar.bmp"
Delete "$INSTDIR\source\LanguageDLLs\French\fz_french.nsh"
; German language files
Delete "$INSTDIR\source\LanguageDLLs\German\resource.h"
Delete "$INSTDIR\source\LanguageDLLs\German\FzResDe.dsp"
Delete "$INSTDIR\source\LanguageDLLs\German\FzResDe.rc"
Delete "$INSTDIR\source\LanguageDLLs\German\res\toolbar.bmp"
Delete "$INSTDIR\source\LanguageDLLs\German\fz_german.nsh"
; Hungarian language files
Delete "$INSTDIR\source\LanguageDLLs\Hungarian\resource.h"
Delete "$INSTDIR\source\LanguageDLLs\Hungarian\FzResHu.dsp"
Delete "$INSTDIR\source\LanguageDLLs\Hungarian\FzResHu.rc"
Delete "$INSTDIR\source\LanguageDLLs\Hungarian\res\toolbar.bmp"
Delete "$INSTDIR\source\LanguageDLLs\Hungarian\fz_hungarian.nsh"
; Italian language files
Delete "$INSTDIR\source\LanguageDLLs\Italian\resource.h"
Delete "$INSTDIR\source\LanguageDLLs\Italian\FzResIt.dsp"
Delete "$INSTDIR\source\LanguageDLLs\Italian\FzResIt.rc"
Delete "$INSTDIR\source\LanguageDLLs\Italian\res\toolbar.bmp"
Delete "$INSTDIR\source\LanguageDLLs\Italian\fz_italian.nsh"
; Korean language files
Delete "$INSTDIR\source\LanguageDLLs\Korean\resource.h"
Delete "$INSTDIR\source\LanguageDLLs\Korean\FzResKr.dsp"
Delete "$INSTDIR\source\LanguageDLLs\Korean\FzResKr.rc"
Delete "$INSTDIR\source\LanguageDLLs\Korean\res\toolbar.bmp"
Delete "$INSTDIR\source\LanguageDLLs\Korean\fz_korean.nsh"
; Polish language files
Delete "$INSTDIR\source\LanguageDLLs\Polish\resource.h"
Delete "$INSTDIR\source\LanguageDLLs\Polish\FzResPo.dsp"
Delete "$INSTDIR\source\LanguageDLLs\Polish\FzResPo.rc"
Delete "$INSTDIR\source\LanguageDLLs\Polish\res\toolbar.bmp"
Delete "$INSTDIR\source\LanguageDLLs\Polish\fz_polish.nsh"
; Spanish language files
Delete "$INSTDIR\source\LanguageDLLs\Spanish\resource.h"
Delete "$INSTDIR\source\LanguageDLLs\Spanish\FzResEs.dsp"
Delete "$INSTDIR\source\LanguageDLLs\Spanish\FzResEs.rc"
Delete "$INSTDIR\source\LanguageDLLs\Spanish\res\toolbar.bmp"
Delete "$INSTDIR\source\LanguageDLLs\Spanish\fz_spanish.nsh"
; Japanese language files
Delete "$INSTDIR\source\LanguageDLLs\Japanese\resource.h"
Delete "$INSTDIR\source\LanguageDLLs\Japanese\FzResJp.dsp"
Delete "$INSTDIR\source\LanguageDLLs\Japanese\FzResJp.rc"
Delete "$INSTDIR\source\LanguageDLLs\Japanese\res\toolbar.bmp"
Delete "$INSTDIR\source\LanguageDLLs\Japanese\fz_japanese.nsh"
; Russian language files
Delete "$INSTDIR\source\LanguageDLLs\Russian\resource.h"
Delete "$INSTDIR\source\LanguageDLLs\Russian\FzResRu.dsp"
Delete "$INSTDIR\source\LanguageDLLs\Russian\FzResRu.rc"
Delete "$INSTDIR\source\LanguageDLLs\Russian\res\toolbar.bmp"
Delete "$INSTDIR\source\LanguageDLLs\Russian\fz_russian.nsh"
;FzSFtp
Delete "$INSTDIR\source\FzSFtp\*.h"
Delete "$INSTDIR\source\FzSFtp\*.c"
Delete "$INSTDIR\source\FzSFtp\*.cpp"
Delete "$INSTDIR\source\FzSFtp\FzSFtp.rc"
Delete "$INSTDIR\source\FzSFtp\FzSFtp.dsp"
Delete "$INSTDIR\source\FzSFtp\LICENCE"
Delete "$INSTDIR\source\FzSFtp\res\scp.ico"
; MUST REMOVE UNINSTALLER, too
Delete $INSTDIR\uninstall.exe
; remove shortcuts, if any.
Delete "$SMPROGRAMS\FileZilla\*.*"
Delete $DESKTOP\FileZilla.lnk
; remove directories used.
; Remove Startmenu shortcuts
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
StrCmp $MUI_TEMP "" noshortcuts
Delete "$SMPROGRAMS\$MUI_TEMP\FileZilla.lnk"
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
Delete "$SMPROGRAMS\$MUI_TEMP\FileZilla Source Project.lnk"
Delete "$SMPROGRAMS\$MUI_TEMP\FileZilla Documentation.lnk"
Delete "$SMPROGRAMS\$MUI_TEMP\FileZilla Documentation (French).lnk"
RMDir "$SMPROGRAMS\Start Menu Folder" ;Only if empty, so it won't delete other shortcuts
CreateShortCut "$SMPROGRAMS\FileZilla\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
CreateShortCut "$SMPROGRAMS\FileZilla\FileZilla.lnk" "$INSTDIR\FileZilla.exe" "" "$INSTDIR\FileZilla.exe" 0
noshortcuts:
; Remove folders
RMDir "$INSTDIR\source\res"
RMDir "$INSTDIR\source\misc"
RMDir "$INSTDIR\source\install"
RMDir "$INSTDIR\source\gss"
RMDir "$INSTDIR\source\documentation\french"
RMDir "$INSTDIR\source\documentation"
RMDir "$INSTDIR\source\openssl"
RMDir "$INSTDIR\source\LanguageDLLs\English\res"
RMDir "$INSTDIR\source\LanguageDLLs\English"
RMDir "$INSTDIR\source\LanguageDLLs\Bulgarian\res"
RMDir "$INSTDIR\source\LanguageDLLs\Bulgarian"
RMDir "$INSTDIR\source\LanguageDLLs\SimplifiedChinese\res"
RMDir "$INSTDIR\source\LanguageDLLs\SimplifiedChinese"
RMDir "$INSTDIR\source\LanguageDLLs\TraditionalChinese\res"
RMDir "$INSTDIR\source\LanguageDLLs\TraditionalChinese"
RMDir "$INSTDIR\source\LanguageDLLs\French\res"
RMDir "$INSTDIR\source\LanguageDLLs\French"
RMDir "$INSTDIR\source\LanguageDLLs\German\res"
RMDir "$INSTDIR\source\LanguageDLLs\German"
RMDir "$INSTDIR\source\LanguageDLLs\Hungarian\res"
RMDir "$INSTDIR\source\LanguageDLLs\Hungarian"
RMDir "$INSTDIR\source\LanguageDLLs\Italian\res"
RMDir "$INSTDIR\source\LanguageDLLs\Italian"
RMDir "$INSTDIR\source\LanguageDLLs\Japanese\res"
RMDir "$INSTDIR\source\LanguageDLLs\Japanese"
RMDir "$INSTDIR\source\LanguageDLLs\Korean\res"
RMDir "$INSTDIR\source\LanguageDLLs\Korean"
RMDir "$INSTDIR\source\LanguageDLLs\Polish\res"
RMDir "$INSTDIR\source\LanguageDLLs\Polish"
RMDir "$INSTDIR\source\LanguageDLLs\Russian\res"
RMDir "$INSTDIR\source\LanguageDLLs\Russian"
RMDir "$INSTDIR\source\LanguageDLLs\Spanish\res"
RMDir "$INSTDIR\source\LanguageDLLs\Spanish"
RMDir "$INSTDIR\source\LanguageDLLs"
RMDir "$INSTDIR\source\FzSFtp\res"
RMDir "$INSTDIR\source\FzSFtp"
RMDir "$INSTDIR\source"
RMDir "$INSTDIR"
SectionEnd
;--------------------------------
;Uninstaller functions
Function un.onInit
!insertmacro MUI_UNGETLANGUAGE
FunctionEnd
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -