⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filezilla.nsi

📁 一个FTP下载的源代码。代码质量非常高
💻 NSI
📖 第 1 页 / 共 3 页
字号:
   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 + -