InetLoad plug-in

From NSIS Wiki
Jump to navigationJump to search
Author: Takhir (talk, contrib)


Links

Download:
InetLoad.zip (33 KB)

Forum thread

Description

Deprecated by: Inetc plug-in.

This project or code is deprecated and is here for archival purposes only.

MS WinInet API based plug-in for http and ftp downloads with better proxy support (compare to NSISdl plug-in). Command line may include few URL/File pairs to be downloaded. Plug-in supports 3 "download in progress" display modes:

  1. old NSISdl style - additional embedded progress bar and text on the INSTFILES page;
  2. POPUP dialog mode with detailed info;
  3. BANNER mode with simple popup window.

Plug-in recognizes Installer's Silent mode and this case hides any output (this feature requires NSIS 2.03 or later). Program implements simple re-get functionality - host reconnect and download from current position after short pause. While program depends on IE settings, it changes current IE mode to online. NSISdl code fragment was used for progress bar displaying in the "old style" mode.

Command line parameters (NSIS script)

InetLoad::load [/PROXY IP:PORT] [/USERNAME PROXY_LOGIN /PASSWORD PROXY_PASSWD]
[/NOPROXY] [/NOCANCEL] [/POST TEXT2POST] [/TIMEOUT INT_MS] [/SILENT TEXT2DISPLAY]
[/RESUME RETRY_QUESTION] [/POPUP PREFIX | /BANNER CAPTION TEXT] [/TRANSLATE LANG_PARAMS]
URL1 local_file1 [URL2 local_file2 [...]] [/END]
/PROXY
Overwrites current proxy settings, not required in most cases. IE settings will be used by default.
/USERNAME
Proxy username (http only).
/PASSWORD
Proxy password (http only). For server (http/ftp) authentication it is possible to use URL encoded name and password, for example http://username:password@nsis.sourceforge.net.
/NOPROXY
Disables proxy settings for this connection (if any)
/NOCANCEL
Prevents download from being interrupted by user (locks Esc, Alt-F4, Cancel handling)
/POST
Sets POST http mode and defines text string to be used in the POST (http only). Disables auto re-get. No char replaces used (%20 and others).
/TIMEOUT
Sets INTERNET_OPTION_CONNECT_TIMEOUT, milliseconds, default - IE current parameter value.
/SILENT
Key hides plug-in' output (both popup dialog and embedded progress bar). Sets TEXT2DISPLAY to 1006 control, if /silent "" - displays "InetLoad plug-in" default. Not required if 'SilentInstall silent' mode was defined in script (NSIS 2.03 option).
/RESUME
On the permanent connection/transfer error instead of exit first displays message box with "resume download" question. Useful for dial-up connections and big files - allows user to restore connection and resume download. Default is "Your internet connection seems to have dropped out!\nPlease reconnect and click Retry to resume downloading...".
/POPUP
This mode displays detailed download dialog instead of embedded progress bar. PREFIX parameter sets left part of dialog caption (before '-'), default is "InetLoad plug-in" (if ""). Also useful in .onInit function (i.e. not in Section).
/BANNER
Displays simple popup dialog (MSI Banner mode) and sets dialog CAPTION ("NSIS Installer - InetLoad" is default) and TEXT (up to 3 lines using $\n).
/END
Allows to limit plug-in stack reading (optional, required if you stores other vars in the stack).
/TRANSLATE
Allows translating plug-in text in the POPUP or "old style" (NSISdl) modes (see Readme for parameters). In the BANNER mode text is also customizable.

Examples

InetLoad::load "http://dl.zvuki.ru/6306/mp3/12.mp3" "$EXEDIR\12.mp3" \
               "ftp://dl.zvuki.ru/6306/mp3/11.mp3" "$EXEDIR\11.mp3"
Pop $0
InetLoad::load /BANNER "" "Cameron Diaz download in progress..." \
"http://www.dreamgirlswallpaper.co.uk/fiveyearsonline/wallpaper/Cameron_Diaz/camerond09big.JPG" \
"$EXEDIR\cd.jpg"
  Pop $0
  StrCmp $0 "OK" dlok
  MessageBox MB_OK|MB_ICONEXCLAMATION "Download Error, click OK to abort installation" /SD IDOK
  Abort
dlok:
  ...

Plug-in returns "OK" string if successful, error description string if failed (see included InetLoad.cpp file for a full set of status strings). Usage and result processing samples are included to the package.