Skip to content
⌘ NSIS Forum Archive

Download A directory From Internet

8 posts

r2du-soft#

Download A directory From Internet

hi
is possible can download a directory from internet?
for example this is a file for download...

but i do not know what's on directory http://dl2.soft98.ir/soft/c/
i want download anything is in:

is possible this work?with Which plug-ins

another question:
if that directory want user and password is possible download that?how?i need a example...
thanks
Anders#
No I don't think any of the available plug-ins supports this.

I don't think there is a standard for listing files over plain HTTP (except WebDAV) but if you want to write a new plugin you could use InternetOpenUrl+InternetFindNextFile, those functions try to parse "file listing" HTML pages for you.
r2du-soft#
thanks mr Anders
i have another question
i how can download a file from net,that host for downloading need to user and password,i have user and password but i dont know i how can download that file with nsis?
Kuppy#edited
Use WGET for download files.
Name "Test Download"
Caption "Test Download"
OutFile "Test Download.exe"
InstallDir "$TEMP\Test Download"
!include MUI2.nsh
!include "nsDialogs.nsh"
!include "FileFunc.nsh"
!include "LogicLib.nsh"
!include "WinMessages.nsh"
SetCompressor /SOLID /FINAL lzma
RequestExecutionLevel User
ShowInstDetails hide
BrandingText /TRIMRIGHT " "
Page Custom MyPageCreate
Page InstFiles
!insertmacro MUI_LANGUAGE "English"
Function .onInit
  InitPluginsDir
  File `/oname=$PLUGINSDIR\Wget.exe` `Wget\Wget.exe`
FunctionEnd
Function MyPageCreate
  # variable
  var /GLOBAL Dialog
  var /GLOBAL Lbl_Welcome
  var /GLOBAL PATH.LINK
  var /GLOBAL PATH.PACK
  var /GLOBAL PATH.SAVE
  var /GLOBAL Btn_Save
  var /GLOBAL Btn_Download
 
  var /GLOBAL Lbl.Info.1
  var /GLOBAL Lbl.Info.2
  var /GLOBAL Lbl.Info.3
  var /global Path_User
  var /global Lbl_User
  var /global Lbl_Show_User
  var /global Path_Pass
  var /global Lbl_Pass
  var /global Lbl_Show_Pass
  GetDlgItem $0 $HWNDPARENT 1
  ShowWindow $0 ${SW_HIDE}
  GetDlgItem $0 $HWNDPARENT 2
  ShowWindow $0 ${SW_HIDE}
  GetDlgItem $0 $HWNDPARENT 3
  ShowWindow $0 ${SW_HIDE}
  GetDlgItem $0 $HWNDPARENT 1990
  ShowWindow $0 ${SW_HIDE}
  GetDlgItem $0 $HWNDPARENT 1991
  ShowWindow $0 ${SW_HIDE}
  GetDlgItem $0 $HWNDPARENT 1992
  ShowWindow $0 ${SW_HIDE}
  System::Call "user32::SetWindowPos(i$HWNDPARENT,i,i,i,i 633,i 455,i 0x16)"
  nsDialogs::Create /NOUNLOAD 1044
  Pop $Dialog
  ${If} $Dialog == error 
    Abort 
  ${EndIf} 
  System::Call "user32::MoveWindow(i$Dialog,i0,i0,i 633,i 455,i0)"
  SetCtlColors $HWNDPARENT 0x313131 0xF5F5F5
  SetCtlColors $Dialog 0x313131 0xF5F5F5
  # WELCOME
  nsDialogs::CreateControl /NOUNLOAD STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 15u 10u 300u 15u "Welcome! To test wget downloader."
  Pop $Lbl_Welcome
  CreateFont $0 "Miriam" "15" "200"
  SendMessage $Lbl_Welcome ${WM_SETFONT} $0 0 
  SetCtlColors $Lbl_Welcome 0x313131 0xF5F5F5
  # LINK
  nsDialogs::CreateControl /NOUNLOAD EDIT 0x40000000|0x10000000|0x04000000|0x00010000|0x00000080 0 15u 30u 385u 15u ""
  Pop $PATH.LINK
  SendMessage $PATH.LINK ${WM_SETTEXT} 0 "STR:Paste a link address here..."
  Strcpy $1 $PATH.LINK
  GetFunctionAddress $0 "on.Click.Add.Link"
  nsDialogs::OnChange /NOUNLOAD $1 $0
  CreateFont $0 "Calibri Light" "15" "100"
  SendMessage $PATH.LINK ${WM_SETFONT} $0 0 
  SetCtlColors $PATH.LINK 0x313131 0xfafafa
  # PACK
  nsDialogs::CreateControl /NOUNLOAD EDIT 0x40000000|0x10000000|0x04000000|0x00010000|0x00000080 0 15u 50u 385u 15u ""
  Pop $PATH.PACK
  SendMessage $PATH.PACK ${WM_SETTEXT} 0 "STR:Paste a package name here..."
  Strcpy $1 $PATH.PACK
  GetFunctionAddress $0 "on.Click.Add.Pack"
  nsDialogs::OnChange /NOUNLOAD $1 $0
  CreateFont $0 "Calibri Light" "15" "100"
  SendMessage $PATH.PACK ${WM_SETFONT} $0 0 
  SetCtlColors $PATH.PACK 0x313131 0xfafafa
  # SAVE
  nsDialogs::CreateControl /NOUNLOAD EDIT 0x40000000|0x10000000|0x04000000|0x00010000|0x00000080 0 15u 70u 320u 15u ""
  Pop $PATH.SAVE
  SendMessage $PATH.SAVE ${WM_SETTEXT} 0 "STR:Select save location here..."
  CreateFont $0 "Calibri Light" "15" "100"
  SendMessage $PATH.SAVE ${WM_SETFONT} $0 0 
  SetCtlColors $PATH.SAVE 0x313131 0xfafafa
  nsDialogs::CreateControl /NOUNLOAD BUTTON 0x40000000|0x10000000|0x04000000|0x00010000 0 345u 70u 55u 15u "Save..."
  Pop $Btn_Save
  Strcpy $1 $Btn_Save
  GetFunctionAddress $3 "on.Click.Save.Pack"
  nsDialogs::onClick $1 $3
  SetCtlColors $Btn_Save 0x313131 0xF5F5F5
  # INFO
  nsDialogs::CreateControl /NOUNLOAD STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 15u 182u 380u 12u ""
  Pop $Lbl.Info.1
  SetCtlColors $Lbl.Info.1 0x313131 0xF5F5F5
  nsDialogs::CreateControl /NOUNLOAD STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 15u 200u 380u 12u ""
  Pop $Lbl.Info.2
  SetCtlColors $Lbl.Info.2 0x313131 0xF5F5F5
  nsDialogs::CreateControl /NOUNLOAD STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 15u 215u 380u 12u ""
  Pop $Lbl.Info.3
  SetCtlColors $Lbl.Info.3 0x313131 0xF5F5F5
 # User
  nsDialogs::CreateControl /NOUNLOAD EDIT 0x40000000|0x10000000|0x04000000|0x00010000|0x00000080 0 50u 90u 205u 12u "" ; Username
  Pop $Path_User
  Strcpy $1 $Path_User
  GetFunctionAddress $3 "On.Click.User"
  nsDialogs::OnChange $1 $3
  SetCtlColors $Path_User 0x313131 0xfafafa
  CreateFont $0 "Calibri Light" 12 200
  SendMessage $Path_User ${WM_SETFONT} $0 0
  nsDialogs::CreateControl /NOUNLOAD STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 15u 92u 30u 15u "User:"
  Pop $Lbl_User
  SetCtlColors $Lbl_User 0x313131 0xF5F5F5
  nsDialogs::CreateControl /NOUNLOAD STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 265u 92u 135u 15u ""
  Pop $Lbl_Show_User
  SetCtlColors $Lbl_Show_User 0x313131 0xF5F5F5
 # Password
  nsDialogs::CreateControl /NOUNLOAD EDIT 0x40000000|0x10000000|0x04000000|0x00010000|0x00000080 0 50u 105u 205u 12u "" ; Password
  Pop $Path_Pass
  Strcpy $1 $Path_Pass
  SendMessage $Path_Pass 0x00CC 149 0
  GetFunctionAddress $3 "On.Click.Pass"
  nsDialogs::OnChange $1 $3
  SetCtlColors $Path_Pass 0x313131 0xfafafa
  CreateFont $0 "Calibri Light" 12 200
  SendMessage $Path_Pass ${WM_SETFONT} $0 0
  nsDialogs::CreateControl /NOUNLOAD STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 15u 107u 35u 15u "Passw:"
  Pop $Lbl_Pass
  SetCtlColors $Lbl_Pass 0x313131 0xF5F5F5
  nsDialogs::CreateControl /NOUNLOAD STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 265u 107u 135u 15u ""
  Pop $Lbl_Show_Pass
  SetCtlColors $Lbl_Show_Pass 0x313131 0xF5F5F5
  # DOWNLOAD
  nsDialogs::CreateControl /NOUNLOAD BUTTON 0x40000000|0x10000000|0x04000000|0x00010000 0 320u 240u 85u 15u "Download Now ..."
  Pop $Btn_Download
  Strcpy $1 $Btn_Download
  GetFunctionAddress $3 "on.Click.Download"
  nsDialogs::onClick $1 $3
  EnableWindow $Btn_Download 0
  SetCtlColors $Btn_Download 0x313131 0xF5F5F5
  nsDialogs::Show
FunctionEnd
var /Global LINK
var /Global PACK
var /Global MYSAVEDIR
Function "on.Click.Add.Link"
  Pop $PATH.LINK
  ${NSD_GetText} $PATH.LINK $0
  Strcpy $LINK '$0'
  ${If} $LINK != "Link"
    SendMessage $Lbl.Info.1 ${WM_SETTEXT} 0 "STR:Link: $LINK"
  ${EndIf}
FunctionEnd
Function "on.Click.Add.Pack"
  Pop $PATH.PACK
  ${NSD_GetText} $PATH.PACK $0
  Strcpy $PACK '$0'
  ${If} $PACK != "Pack"
    SendMessage $Lbl.Info.2 ${WM_SETTEXT} 0 "STR:Package: $PACK"
  ${EndIf}
FunctionEnd
Function "on.Click.Save.Pack"
  nsDialogs::SelectFolderDialog /NOUNLOAD "Destination of save:" "c:\"
  Pop $0
  StrCpy $MYSAVEDIR $0
  ${NSD_SetText} $PATH.SAVE $MYSAVEDIR
  ${If} $MYSAVEDIR != ""
    SendMessage $Lbl.Info.3 ${WM_SETTEXT} 0 "STR:Destination: $MYSAVEDIR"
    EnableWindow $Btn_Download '1'
  ${EndIf}
FunctionEnd
var /Global USERNAME
var /Global PASSWORD
Function "On.Click.User"
  Pop $Path_User
  ${NSD_GetText} $Path_User $0
  StrCpy $USERNAME "$0"
     SendMessage $Lbl_Show_User ${WM_SETTEXT} 0 "STR:$USERNAME"
FunctionEnd
Function "On.Click.Pass"
  Pop $Path_Pass
  ${NSD_GetText} $Path_Pass $0
  StrCpy $PASSWORD "$0"
     SendMessage $Lbl_Show_Pass ${WM_SETTEXT} 0 "STR:$PASSWORD"
FunctionEnd
Function "on.Click.Download"
  SetShellVarContext "all"
  System::Call 'kernel32::CreateDirectoryW(w "$MYSAVEDIR", i0)i.r0?e'
  nsExec::ExecToStack '"$PLUGINSDIR\wget.exe" -q --continue "$LINK" -O "$MYSAVEDIR\$PACK" --user=$USERNAME --password=$PASSWORD' $0
  pop $0
  pop $1
  IfFileExists "$MYSAVEDIR\$PACK" "NSIS.Successfully.Download" "NSIS.Failed.Download"
  StrCmp $0 1 "NSIS.Successfully.Download" "NSIS.Failed.Download"
  ${If} $0 == "1"
    NSIS.Successfully.Download:
    ${GetSize} "$MYSAVEDIR" "/M=$PACK /S=0K" $0 $1 $2
    IfErrors 0 +2
    StrCpy $0 $0 * 1024
    IntCmp $0 100 +3 0 +3
      IntCmp $0 0 +2 +2 0
      IntOp $0 103 + 0
    IntOp $0 $0 * 10
    IntOp $0 $0 / 1024
    StrCpy $1 "$0" "" -1
    IntCmp $0 9 +3 +3 0
      StrCpy $0 "$0" -1 ""
      Goto +2
      StrCpy $0 "0"
     SendMessage $Lbl.Info.1 ${WM_SETTEXT} 0 "STR:The package has been downloaded successfully! Size: $0.$1 MiB"
  ${ElseIf} $0 == "0"
    NSIS.Failed.Download:
     SendMessage $Lbl.Info.1 ${WM_SETTEXT} 0 "STR:Downloading the package failed!"
  ${Endif}
FunctionEnd
Section
SectionEnd 
Alrock#
Originally Posted by Anders View Post
Cheers for this, nifty little trick that, gonna put this to good use.
r2du-soft#
Originally Posted by Kuppy View Post
Use WGET for download files.
Name "Test Download"
Caption "Test Download"
OutFile "Test Download.exe"
InstallDir "$TEMP\Test Download"
!include MUI2.nsh
!include "nsDialogs.nsh"
!include "FileFunc.nsh"
!include "LogicLib.nsh"
!include "WinMessages.nsh"
SetCompressor /SOLID /FINAL lzma
RequestExecutionLevel User
ShowInstDetails hide
BrandingText /TRIMRIGHT " "
Page Custom MyPageCreate
Page InstFiles
!insertmacro MUI_LANGUAGE "English"
Function .onInit
  InitPluginsDir
  File `/oname=$PLUGINSDIR\Wget.exe` `Wget\Wget.exe`
FunctionEnd
Function MyPageCreate
  # variable
  var /GLOBAL Dialog
  var /GLOBAL Lbl_Welcome
  var /GLOBAL PATH.LINK
  var /GLOBAL PATH.PACK
  var /GLOBAL PATH.SAVE
  var /GLOBAL Btn_Save
  var /GLOBAL Btn_Download
 
  var /GLOBAL Lbl.Info.1
  var /GLOBAL Lbl.Info.2
  var /GLOBAL Lbl.Info.3
  var /global Path_User
  var /global Lbl_User
  var /global Lbl_Show_User
  var /global Path_Pass
  var /global Lbl_Pass
  var /global Lbl_Show_Pass
  GetDlgItem $0 $HWNDPARENT 1
  ShowWindow $0 ${SW_HIDE}
  GetDlgItem $0 $HWNDPARENT 2
  ShowWindow $0 ${SW_HIDE}
  GetDlgItem $0 $HWNDPARENT 3
  ShowWindow $0 ${SW_HIDE}
  GetDlgItem $0 $HWNDPARENT 1990
  ShowWindow $0 ${SW_HIDE}
  GetDlgItem $0 $HWNDPARENT 1991
  ShowWindow $0 ${SW_HIDE}
  GetDlgItem $0 $HWNDPARENT 1992
  ShowWindow $0 ${SW_HIDE}
  System::Call "user32::SetWindowPos(i$HWNDPARENT,i,i,i,i 633,i 455,i 0x16)"
  nsDialogs::Create /NOUNLOAD 1044
  Pop $Dialog
  ${If} $Dialog == error 
    Abort 
  ${EndIf} 
  System::Call "user32::MoveWindow(i$Dialog,i0,i0,i 633,i 455,i0)"
  SetCtlColors $HWNDPARENT 0x313131 0xF5F5F5
  SetCtlColors $Dialog 0x313131 0xF5F5F5
  # WELCOME
  nsDialogs::CreateControl /NOUNLOAD STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 15u 10u 300u 15u "Welcome! To test wget downloader."
  Pop $Lbl_Welcome
  CreateFont $0 "Miriam" "15" "200"
  SendMessage $Lbl_Welcome ${WM_SETFONT} $0 0 
  SetCtlColors $Lbl_Welcome 0x313131 0xF5F5F5
  # LINK
  nsDialogs::CreateControl /NOUNLOAD EDIT 0x40000000|0x10000000|0x04000000|0x00010000|0x00000080 0 15u 30u 385u 15u ""
  Pop $PATH.LINK
  SendMessage $PATH.LINK ${WM_SETTEXT} 0 "STR:Paste a link address here..."
  Strcpy $1 $PATH.LINK
  GetFunctionAddress $0 "on.Click.Add.Link"
  nsDialogs::OnChange /NOUNLOAD $1 $0
  CreateFont $0 "Calibri Light" "15" "100"
  SendMessage $PATH.LINK ${WM_SETFONT} $0 0 
  SetCtlColors $PATH.LINK 0x313131 0xfafafa
  # PACK
  nsDialogs::CreateControl /NOUNLOAD EDIT 0x40000000|0x10000000|0x04000000|0x00010000|0x00000080 0 15u 50u 385u 15u ""
  Pop $PATH.PACK
  SendMessage $PATH.PACK ${WM_SETTEXT} 0 "STR:Paste a package name here..."
  Strcpy $1 $PATH.PACK
  GetFunctionAddress $0 "on.Click.Add.Pack"
  nsDialogs::OnChange /NOUNLOAD $1 $0
  CreateFont $0 "Calibri Light" "15" "100"
  SendMessage $PATH.PACK ${WM_SETFONT} $0 0 
  SetCtlColors $PATH.PACK 0x313131 0xfafafa
  # SAVE
  nsDialogs::CreateControl /NOUNLOAD EDIT 0x40000000|0x10000000|0x04000000|0x00010000|0x00000080 0 15u 70u 320u 15u ""
  Pop $PATH.SAVE
  SendMessage $PATH.SAVE ${WM_SETTEXT} 0 "STR:Select save location here..."
  CreateFont $0 "Calibri Light" "15" "100"
  SendMessage $PATH.SAVE ${WM_SETFONT} $0 0 
  SetCtlColors $PATH.SAVE 0x313131 0xfafafa
  nsDialogs::CreateControl /NOUNLOAD BUTTON 0x40000000|0x10000000|0x04000000|0x00010000 0 345u 70u 55u 15u "Save..."
  Pop $Btn_Save
  Strcpy $1 $Btn_Save
  GetFunctionAddress $3 "on.Click.Save.Pack"
  nsDialogs::onClick $1 $3
  SetCtlColors $Btn_Save 0x313131 0xF5F5F5
  # INFO
  nsDialogs::CreateControl /NOUNLOAD STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 15u 182u 380u 12u ""
  Pop $Lbl.Info.1
  SetCtlColors $Lbl.Info.1 0x313131 0xF5F5F5
  nsDialogs::CreateControl /NOUNLOAD STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 15u 200u 380u 12u ""
  Pop $Lbl.Info.2
  SetCtlColors $Lbl.Info.2 0x313131 0xF5F5F5
  nsDialogs::CreateControl /NOUNLOAD STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 15u 215u 380u 12u ""
  Pop $Lbl.Info.3
  SetCtlColors $Lbl.Info.3 0x313131 0xF5F5F5
 # User
  nsDialogs::CreateControl /NOUNLOAD EDIT 0x40000000|0x10000000|0x04000000|0x00010000|0x00000080 0 50u 90u 205u 12u "" ; Username
  Pop $Path_User
  Strcpy $1 $Path_User
  GetFunctionAddress $3 "On.Click.User"
  nsDialogs::OnChange $1 $3
  SetCtlColors $Path_User 0x313131 0xfafafa
  CreateFont $0 "Calibri Light" 12 200
  SendMessage $Path_User ${WM_SETFONT} $0 0
  nsDialogs::CreateControl /NOUNLOAD STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 15u 92u 30u 15u "User:"
  Pop $Lbl_User
  SetCtlColors $Lbl_User 0x313131 0xF5F5F5
  nsDialogs::CreateControl /NOUNLOAD STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 265u 92u 135u 15u ""
  Pop $Lbl_Show_User
  SetCtlColors $Lbl_Show_User 0x313131 0xF5F5F5
 # Password
  nsDialogs::CreateControl /NOUNLOAD EDIT 0x40000000|0x10000000|0x04000000|0x00010000|0x00000080 0 50u 105u 205u 12u "" ; Password
  Pop $Path_Pass
  Strcpy $1 $Path_Pass
  SendMessage $Path_Pass 0x00CC 149 0
  GetFunctionAddress $3 "On.Click.Pass"
  nsDialogs::OnChange $1 $3
  SetCtlColors $Path_Pass 0x313131 0xfafafa
  CreateFont $0 "Calibri Light" 12 200
  SendMessage $Path_Pass ${WM_SETFONT} $0 0
  nsDialogs::CreateControl /NOUNLOAD STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 15u 107u 35u 15u "Passw:"
  Pop $Lbl_Pass
  SetCtlColors $Lbl_Pass 0x313131 0xF5F5F5
  nsDialogs::CreateControl /NOUNLOAD STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 265u 107u 135u 15u ""
  Pop $Lbl_Show_Pass
  SetCtlColors $Lbl_Show_Pass 0x313131 0xF5F5F5
  # DOWNLOAD
  nsDialogs::CreateControl /NOUNLOAD BUTTON 0x40000000|0x10000000|0x04000000|0x00010000 0 320u 240u 85u 15u "Download Now ..."
  Pop $Btn_Download
  Strcpy $1 $Btn_Download
  GetFunctionAddress $3 "on.Click.Download"
  nsDialogs::onClick $1 $3
  EnableWindow $Btn_Download 0
  SetCtlColors $Btn_Download 0x313131 0xF5F5F5
  nsDialogs::Show
FunctionEnd
var /Global LINK
var /Global PACK
var /Global MYSAVEDIR
Function "on.Click.Add.Link"
  Pop $PATH.LINK
  ${NSD_GetText} $PATH.LINK $0
  Strcpy $LINK '$0'
  ${If} $LINK != "Link"
    SendMessage $Lbl.Info.1 ${WM_SETTEXT} 0 "STR:Link: $LINK"
  ${EndIf}
FunctionEnd
Function "on.Click.Add.Pack"
  Pop $PATH.PACK
  ${NSD_GetText} $PATH.PACK $0
  Strcpy $PACK '$0'
  ${If} $PACK != "Pack"
    SendMessage $Lbl.Info.2 ${WM_SETTEXT} 0 "STR:Package: $PACK"
  ${EndIf}
FunctionEnd
Function "on.Click.Save.Pack"
  nsDialogs::SelectFolderDialog /NOUNLOAD "Destination of save:" "c:\"
  Pop $0
  StrCpy $MYSAVEDIR $0
  ${NSD_SetText} $PATH.SAVE $MYSAVEDIR
  ${If} $MYSAVEDIR != ""
    SendMessage $Lbl.Info.3 ${WM_SETTEXT} 0 "STR:Destination: $MYSAVEDIR"
    EnableWindow $Btn_Download '1'
  ${EndIf}
FunctionEnd
var /Global USERNAME
var /Global PASSWORD
Function "On.Click.User"
  Pop $Path_User
  ${NSD_GetText} $Path_User $0
  StrCpy $USERNAME "$0"
     SendMessage $Lbl_Show_User ${WM_SETTEXT} 0 "STR:$USERNAME"
FunctionEnd
Function "On.Click.Pass"
  Pop $Path_Pass
  ${NSD_GetText} $Path_Pass $0
  StrCpy $PASSWORD "$0"
     SendMessage $Lbl_Show_Pass ${WM_SETTEXT} 0 "STR:$PASSWORD"
FunctionEnd
Function "on.Click.Download"
  SetShellVarContext "all"
  System::Call 'kernel32::CreateDirectoryW(w "$MYSAVEDIR", i0)i.r0?e'
  nsExec::ExecToStack '"$PLUGINSDIR\wget.exe" -q --continue "$LINK" -O "$MYSAVEDIR\$PACK" --user=$USERNAME --password=$PASSWORD' $0
  pop $0
  pop $1
  IfFileExists "$MYSAVEDIR\$PACK" "NSIS.Successfully.Download" "NSIS.Failed.Download"
  StrCmp $0 1 "NSIS.Successfully.Download" "NSIS.Failed.Download"
  ${If} $0 == "1"
    NSIS.Successfully.Download:
    ${GetSize} "$MYSAVEDIR" "/M=$PACK /S=0K" $0 $1 $2
    IfErrors 0 +2
    StrCpy $0 $0 * 1024
    IntCmp $0 100 +3 0 +3
      IntCmp $0 0 +2 +2 0
      IntOp $0 103 + 0
    IntOp $0 $0 * 10
    IntOp $0 $0 / 1024
    StrCpy $1 "$0" "" -1
    IntCmp $0 9 +3 +3 0
      StrCpy $0 "$0" -1 ""
      Goto +2
      StrCpy $0 "0"
     SendMessage $Lbl.Info.1 ${WM_SETTEXT} 0 "STR:The package has been downloaded successfully! Size: $0.$1 MiB"
  ${ElseIf} $0 == "0"
    NSIS.Failed.Download:
     SendMessage $Lbl.Info.1 ${WM_SETTEXT} 0 "STR:Downloading the package failed!"
  ${Endif}
FunctionEnd
Section
SectionEnd 

thanks my friend,but not work i tested! is possible compile code and give me exe file?
when i test show me error: downloading the package failed!
Kuppy#
More examples here: http://www.nsisfans.com/thread-728-1-1.html