new doc format (incomplete)
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@873 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
845c5dfe6a
commit
3ead7e15ef
11 changed files with 665 additions and 0 deletions
276
Docs/src/attributes.but
Normal file
276
Docs/src/attributes.but
Normal file
|
@ -0,0 +1,276 @@
|
|||
\A{attrib} Installer Attributes
|
||||
|
||||
The commands below all adjust attributes of the installer. These attributes control how the installer looks and functions, including which pages are present in the installer, as what text is displayed in each part of each page, how the installer is named, what icon the installer uses, the default installation directory, what file it writes out, and more. Note that these attributes can be set anywhere in the file except in a Section or Function. With the exception of InstallDir, none of these attributes allow use of Variables other than $\\r and $\\n in their strings.
|
||||
|
||||
\H{aaddbrandingimage} AddBrandingImage
|
||||
|
||||
AddBrandingImage \e{(left|top) (width|height)}
|
||||
|
||||
Adds a branding image on the top of the installer or on the left. Its size will be set according to the width/height sepcified, the installer width/height and the installer font. Because this depends on the installer font, you should put SetFont before AddBrandingImage.
|
||||
|
||||
\H{aallowrootdirinstall} AllowRootDirInstall
|
||||
|
||||
AllowRootDirInstall \e{true|false}
|
||||
|
||||
Controls whether or not installs are enabled to the root directory of a drive, or directly into a network share. Set to 'true' to change the default (safe) behavior, which prevents users from selecting C:\\ or \\\\server\\share as an install (and lataer on, uninstall) directory. For additional directory selection page customizability, see .onVerifyInstDir
|
||||
|
||||
\H{aautoclosewindow} AutoCloseWindow
|
||||
|
||||
AutoCloseWindow \e{true|false}
|
||||
|
||||
Sets whether or not the install window automatically closes when completed. Can be 'false' or 'true'. This is overrideable from a section using SetAutoClose.
|
||||
|
||||
\H{abggradient} BGGradient
|
||||
|
||||
BGGradient \e{[off]|[topc botc [textcolor|notext]]}
|
||||
|
||||
Specifies whether or not to use a gradient background window. If 'off', the installer will not show a background window, if no parameters are specified, the default black to blue gradient is used, and otherwise the top_color or bottom_color are used to make a gradient. Top_color and bottom_color are specified using the form RRGGBB (in hexadecimal, as in HTML, only minus the leading '#', since # can be used for comments). 'textcolor' can be specified as well, or 'notext' can be specified to turn the big background text off.
|
||||
|
||||
\H{abrandingtext} BrandingText
|
||||
|
||||
BrandingText \e{[/LANG=lang_id] /TRIM(LEFT|RIGHT|CENTER) text}
|
||||
|
||||
Sets the text that is shown (by default it is 'Nullsoft Install System vX.XX') in the bottom of the install window. Setting this to an empty string ("") uses the default; to set the string to blank, use " " (a space). If it doesn't matter to you, leave it the default so that everybody can know why the installer didn't suck. heh. Use /TRIMLEFT, /TRIMRIGHT or /TRIMCENTER to trim down the size of the control to the size of the string.
|
||||
|
||||
\H{acaption} Caption
|
||||
|
||||
Caption \e{[/LANG=lang_id] caption}
|
||||
|
||||
Sets what the titlebars of the installer will display. By default, it is 'Name Setup', where Name is specified with the Name command (See \k{aname}). You can, however, override it with 'MyApp Installer' or whatever. If you specify an empty string (""), the default will be used (you can however specify " " to achieve a blank string)
|
||||
|
||||
\H{achangeui} ChangeUI
|
||||
|
||||
ChangeUI \e{dialog ui_file.exe}
|
||||
|
||||
Replaces dialog (IDD_LICENSE, IDD_DIR, IDD_SELCOM, IDD_INST, IDD_INSTFILES or IDD_UNINST) by a dialog with the same resource ID in ui_file.exe. You can also specifiy 'all' as the dialog if you wish to load replace all 6 of the dialogs at once from the same UI file. For some example UIs look at Contrib\\UIs under your NSIS directory.
|
||||
|
||||
\b IDD_LICENSE must contain IDC_EDIT1 (RICHEDIT control).
|
||||
|
||||
\b IDD_DIR must contain IDC_DIR (edit box), IDC_BROWSE (button) and IDC_CHECK1 (checkbox).
|
||||
|
||||
\b IDD_SELCOM must contain IDC_TREE1 (SysTreeView32 control), and IDC_COMBO1 (combo box).
|
||||
|
||||
\b IDD_INST must contain IDC_BACK (button), IDC_CHILDRECT (static control the size of all other dialogs), IDC_VERSTR (static), IDOK (button), and IDCANCEL (button). If an image control (static with SS_BITMAP style) will be found in this dialog it will be used as the default for SetBrandingImage.
|
||||
|
||||
\b IDD_INSTFILES must contain IDC_LIST1 (SysListView32 control), IDC_PROGRESS1 and IDC_PROGRESS2 (msctls_progress32 controls), and IDC_SHOWDETAILS (button).
|
||||
|
||||
\b IDD_UNINST must contain IDC_EDIT1 (edit box).
|
||||
|
||||
\b IDD_VERIFY must contain IDC_STR (static).
|
||||
|
||||
\H{acompletedtext} CompletedText
|
||||
|
||||
CompletedText \e{[/LANG=lang_id] [Completed text]}
|
||||
|
||||
Replaces the default text ("Completed") that is printed at the end of the install if parameter is specified. Otherwise, the default is used.
|
||||
|
||||
\H{acomponenttext} ComponentText
|
||||
|
||||
ComponentText \e{[/LANG=lang_id] [text] [subtext] [subtext2]}
|
||||
|
||||
Specifies a string that is above the component list. This can be something that notifies the user what it is they are actually installing. Note that if no parameter is specified, or if the ComponentText command is omitted, then the component page will not be visible, and all of the sections will be installed. Note: if text is specified and non-empty and you leave subtext or subtext2 empty, the defaults will be used (to set one to blank, use a string like " "). empty strings mean default on subtext and subtext2. Likewise, if you wish to enable the component page, but don't want any text on the top line, set text to " ".
|
||||
|
||||
\H{acrccheck} CRCCheck
|
||||
|
||||
CRCCheck \e{on|off}
|
||||
|
||||
Specifies whether or not the installer will perform a CRC on itself before allowing an install. Valid options are 'on' and 'off'. Note that if the user uses /NCRC on the command line when executing the installer, the CRC will not occur, and the user will be allowed to install a (potentially) corrupted installer.
|
||||
|
||||
\H{adetailsbuttontext} DetailsButtonText
|
||||
|
||||
DetailsButtonText \e{[/LANG=lang_id] [show details text]}
|
||||
|
||||
Replaces the default details button text of "Show details", if parameter is specified (otherwise the default is used).
|
||||
|
||||
\H{adirshow} DirShow
|
||||
|
||||
DirShow \e{show|hide}
|
||||
|
||||
Specifies whether or not the user will see the directory selection page. Note that if 'hide' is specified, the installer will still check the validity of the installation path (using internal logic and .onVerifyInstDir if it is declared). If the path is deemed invalid, the directory page will be shown. To completely disable the Directory page (and install without prompting, even if a valid installation path is not available), specify DirText with no parameter (this might be useful if the installer installs everything into $SYSDIR or something like that).
|
||||
|
||||
\H{adirtext} DirText
|
||||
|
||||
DirText \e{[/LANG=lang_id] [text] [subtext] [browse text]}
|
||||
|
||||
Specifies a string that is above the directory selection area. If this command is not specified, or no parameter is specified, then the directory page is never visible to the user (even if DirShow show is specified). If subtext is specified and not empty, it overrides the default text above the path entry box ("Select the directory to install MyApp in:"). If browse button text is specified but not empty, it overrides the default browse button text ("Browse...").
|
||||
|
||||
\H{aenabledbitmap} EnabledBitmap
|
||||
|
||||
EnabledBitmap \e{bitmap.bmp}
|
||||
|
||||
Sets the enabled state of the listbox for the component page. It MUST be a 16 color bitmap (it can be any size, but 20x20 is preferred -- all others will be resized down... poorly). DisabledBitmap bitmap.bmp Sets the disabled state of the listbox for the component page. It MUST be a 16 color bitmap (it can be any size, but 20x20 is preferred -- all others will be resized down... poorly).
|
||||
|
||||
\H{a} FileErrorText
|
||||
|
||||
FileErrorText \e{[/LANG=lang_id] [file error text]}
|
||||
|
||||
Replaces the default text that comes up when a file cannot be written to. This string can contain a reference to $0, which is the filename ($0 is temporarily changed to this value). Example: "Can not write to file $\\r$\\n$0$\\r$\\ngood luck, bitch.".
|
||||
|
||||
\H{ainstallbuttontext} InstallButtonText
|
||||
|
||||
InstallButtonText \e{[/LANG=lang_id] [install button text]}
|
||||
|
||||
If parameter is specified, overrides the default install button text (of "Install") with the specified text.
|
||||
|
||||
\H{ainstallcolors} InstallColors
|
||||
|
||||
InstallColors \e{/windows | foreground background}
|
||||
|
||||
Sets the colors to use for the install info screen (the default is 00FF00 000000. Use the form RRGGBB (in hexadecimal, as in HTML, only minus the leading '#', since # can be used for comments). Note that if "/windows" is specified as the only parameter, the default windows colors will be used.
|
||||
|
||||
\H{ainstalldir} InstallDir
|
||||
|
||||
InstallDir \e{definstdir}
|
||||
|
||||
Sets the default installation directory is. See the variables section for variables that can be used to make this string (especially $PROGRAMFILES). Note that the part of this string following the last \\ will be used if the user selects 'browse', and may be appended back on to the string at install time (to disable this, end the directory with a \\ (which will require the entire parameter to be enclosed with quotes)). If this doesn't make any sense, play around with the browse button a bit.
|
||||
|
||||
\H{ainstalldirregkey} InstallDirRegKey
|
||||
|
||||
InstallDirRegKey \e{root_key subkey key_name}
|
||||
|
||||
This attribute tells the installer to check a string in the registry, and use it for the install dir if that string is valid. If this attribute is present, it will override the InstallDir attribute if the registry key is valid, otherwise it will fall back to the InstallDir default. When querying the registry, this command will automatically remove any quotes. If the string ends in ".exe", it will automatically remove the filename component of the string (i.e. if the string is "C:\\program files\\poop\\poop.exe", it will know to use "C:\\program files\\poop"). For more advanced install directory configuration, set $INSTDIR in .onInit.
|
||||
|
||||
\H{ainstprogressflags} InstProgressFlags
|
||||
|
||||
InstProgressFlags \e{[flag [...]]}
|
||||
|
||||
Valid values for flag are "smooth" (smooth the progress bar) or "colored" (color the progress bar with the colors set by InstallColors. Examples: "InstProgressFlags" (default old-school windows look), "InstProgressFlags smooth" (new smooth look), "InstProgressFlags smooth colored" (colored smooth look whee).
|
||||
|
||||
\H{ainsttype} InstType
|
||||
|
||||
InstType \e{install_type_name | /NOCUSTOM | ([/LANG=lang_id] /CUSTOMSTRING=str)| /COMPONENTS.. ..ONLYONCUSTOM}
|
||||
|
||||
Adds an install type to the install type list, or disables the custom install type. There can be as many as 8 types, each one specifying the name of the install. The first type is the default (generally 'Typical'). Each type is numbered, starting at 1. See SectionIn for information on how those numbers are used. If the /NOCUSTOM switch is specified, then the "custom" install type is disabled, and the user has to choose one of the pre-defined install types. Alternatively, if the /CUSTOMSTRING switch is specified, the parameter will override the "Custom" install type text. Alternatively, if the /COMPONENTSONLYONCUSTOM flag is specified, the component list will only be shown if the "Custom" install type is selected.
|
||||
|
||||
\H{alicensebkcolor} LicenseBkColor
|
||||
|
||||
LicenseBkColor \e{color}
|
||||
|
||||
Sets the background color of the license data.
|
||||
|
||||
\H{alicensedata} LicenseData
|
||||
|
||||
LicenseData \e{[/LANG=lang_id] licdata.txt}
|
||||
|
||||
Specifies a text file to use for the license that the user can read. Omit this to not have a license displayed. Note that the file must be in the evil DOS text format (\\r\\n, yeah!)
|
||||
|
||||
\H{alicensetext} LicenseText
|
||||
|
||||
LicenseText text \e{[/LANG=lang_id] [button_text]}
|
||||
|
||||
Specifies a string that is above the license text. Omit this to not have a license displayed. If button_text is specified, it will override the default button text of "I Agree".
|
||||
|
||||
\H{aloadlanguagefile} LoadLanguageFile
|
||||
|
||||
LoadLanguageFile \e{lang_file.nlf}
|
||||
|
||||
Loads a NLF (NSIS Language File) that will be used to create a string table for the specific language in that NLF.
|
||||
|
||||
\H{amiscbuttontext} MiscButtonText
|
||||
|
||||
MiscButtonText \e{[/LANG=lang_id] [back button text] [next button text] [cancel button text] [close button text]}
|
||||
|
||||
Replaces the default text strings for the four buttons (< Back, Next >, Cancel and Close). If parameters are omitted, the defaults are used.
|
||||
|
||||
\H{aname} Name
|
||||
|
||||
Name \e{[/LANG=lang_id] name}
|
||||
|
||||
Sets the name of the installer. The name is usually simply the product name such as 'MyApp' or 'CrapSoft MyApp'.
|
||||
|
||||
\H{aicon} Icon
|
||||
|
||||
Icon \e{path_to_icon.ico}
|
||||
|
||||
Sets the icon of the installer. The icon MUST contain a 32x32 color icon resource (it can also contain other icons, but they will be discarded).
|
||||
|
||||
\H{aoutfile} OutFile
|
||||
|
||||
OutFile \e{install.exe}
|
||||
|
||||
Specifies the output file that the MakeNSIS should write the installer to. This is just the file that MakeNSIS writes, it doesn't effect the contents of the installer.
|
||||
|
||||
\H{asetfont} SetFont
|
||||
|
||||
SetFont \e{font_face_name font_size}
|
||||
|
||||
Sets the installer font. Please remember that the font you choose must be present on the user's machine as well. Don't use rare fonts that only you have.
|
||||
|
||||
\H{ashowinstdetails} ShowInstDetails
|
||||
|
||||
ShowInstDetails \e{hide|show|nevershow}
|
||||
|
||||
Sets whether or not the details of the install are shown. Can be 'hide' (the default) to hide the details by default, allowing the user to view them, or 'show' to show them by default, or 'nevershow', to prevent the user from ever seeing them. Note that sections can override this using SetDetailsView.
|
||||
|
||||
\H{ashowuninstdetails} ShowUninstDetails
|
||||
|
||||
ShowUninstDetails \e{hide|show|nevershow}
|
||||
|
||||
Sets whether or not the details of the uninstall are shown. Can be 'hide' (the default) to hide the details by default, allowing the user to view them, or 'show' to show them by default, or 'nevershow', to prevent the user from ever seeing them. Note that sections can override this using SetDetailsView.
|
||||
|
||||
\H{asilentinstall} SilentInstall
|
||||
|
||||
SilentInstall \e{normal|silent|silentlog}
|
||||
|
||||
Specifies whether or not the installer should be silent. If it is 'silent' or 'silentlog', all sections are installed quietly, with no screen output from the installer itself (MessageBoxes are still displayed on error, and the script can still display whatever it wants). Note that if this is set to 'normal' and the user runs the installer with /S on the command line, it will behave as if SilentInstall 'silent' was used. Note: see also LogSet.
|
||||
|
||||
\H{asilentuninstall} SilentUnInstall
|
||||
|
||||
SilentUnInstall \e{normal|silent}
|
||||
|
||||
Specifies whether or not the uninstaller should be silent.
|
||||
|
||||
\H{aspacetexts} SpaceTexts
|
||||
|
||||
SpaceTexts \e{[/LANG=lang_id] [req text] [avail text]}
|
||||
|
||||
If parameters are specified, overrides the space required and space available text ("Space required: " and "Space available: " by default).
|
||||
|
||||
\H{asubcaption} SubCaption
|
||||
|
||||
SubCaption \e{[/LANG=lang_id] page_number subcaption}
|
||||
|
||||
Overrides the subcaptions for each of the installer pages (0=": License Agreement",1=": Installation Options",2=": Installation Directory", 3=": Installing Files", 4=": Completed"). If you specify an empty string (""), the default will be used (you can however specify " " to achieve a blank string)
|
||||
|
||||
\H{auninstallbuttontext} UninstallButtonText
|
||||
|
||||
UninstallButtonText \e{[/LANG=lang_id] [button text]}
|
||||
|
||||
Changes the text of the button that by default says "Uninstall" in the uninstaller. If no parameter is specified, the default text is used. See also WriteUninstaller (replaces UninstallEXEName).
|
||||
|
||||
\H{auninstallcaption} UninstallCaption
|
||||
|
||||
UninstallCaption \e{[/LANG=lang_id] caption}
|
||||
|
||||
Sets what the titlebars of the uninstaller will display. By default, it is 'Name Uninstall', where Name is specified with the Name command. You can, however, override it with 'MyApp uninstaller' or whatever. If you specify an empty string (""), the default will be used (you can however specify " " to achieve a blank string)
|
||||
|
||||
\H{auninstallicon} UninstallIcon
|
||||
|
||||
UninstallIcon \e{path_to_icon.ico}
|
||||
|
||||
Sets the icon of the uninstaller. Again, the icon MUST contain a 32x32x16 color icon resource (it can also contain other icons, but they will be discarded).
|
||||
|
||||
\H{auninstallsubcaption} UninstallSubCaption
|
||||
|
||||
UninstallSubCaption \e{[/LANG=lang_id] page_number subcaption}
|
||||
|
||||
Overrides the subcaptions for each of the uninstaller pages (0=": Confirmation",1=": Uninstalling Files",2=": Completed"). If you specify an empty string (""), the default will be used (you can however specify " " to achieve a blank string)
|
||||
|
||||
\H{auninstalltext} UninstallText
|
||||
|
||||
UninstallText text \e{[/LANG=lang_id] [subtext]}
|
||||
|
||||
Specifies the text on the first page of the uninstaller. If subtext is specified and not empty, it will replace the default secondary text on that page, "Uninstall from:".
|
||||
|
||||
\H{awindowicon} WindowIcon
|
||||
|
||||
WindowIcon \e{on|off}
|
||||
|
||||
Sets whether or not the installer's icon is in the upper left corner of the installer.
|
||||
|
||||
\H{axpstyle} XPStyle
|
||||
|
||||
XPStyle on|off
|
||||
|
||||
Sets whether or not an XP manifest will be added to the installer. Default value is off. This affects the uninstaller too.
|
||||
|
BIN
Docs/src/bin/halibut.exe
Normal file
BIN
Docs/src/bin/halibut.exe
Normal file
Binary file not shown.
8
Docs/src/build.bat
Normal file
8
Docs/src/build.bat
Normal file
|
@ -0,0 +1,8 @@
|
|||
bin\halibut.exe config.but intro.but usage.but script.but attributes.but compilerflags.but history.but license.but
|
||||
@del *.hlp
|
||||
@del *.cnt
|
||||
@copy Contents.html index.html
|
||||
@copy index.html IndexPage.html
|
||||
@del output.txt
|
||||
@copy *.html ..\\
|
||||
@del -f *.html
|
32
Docs/src/compilerflags.but
Normal file
32
Docs/src/compilerflags.but
Normal file
|
@ -0,0 +1,32 @@
|
|||
\A{compilerflags} Compiler Flags
|
||||
|
||||
The following commands change how the compiler generates code and compresses data. These commands are valid anywhere in the script, and effect every line below where each one is placed (until overriden by another command).
|
||||
|
||||
\H{asetoverwrite} SetOverwrite
|
||||
SetOverwrite \e{on|off|try|ifnewer}
|
||||
|
||||
This command sets the overwrite flag which is used by the File command to determine whether or not the file should overwrite any existing files that are present. If overwriteflag is 'on', files are overwritten (this is the default). If overwriteflag is 'off', files that are already present are not overwritten. If overwriteflag is 'try', files are overwritten if possible (meaning that if the file is not able to be written to, it is skipped without any user interaction). If overwriteflag is 'ifnewer', then files are only overwritten if the existing file is older than the new file (note that when in 'ifnewer' mode, the destination file's date is set, regardless of what SetDateSave is set to).
|
||||
|
||||
\H{asetcompress} SetCompress
|
||||
|
||||
SetCompress \e{auto|force|off}
|
||||
|
||||
This command sets the compress flag which is used by the installer to determine whether or not data should be compressed. Typically the SetCompress flag will effect the commands after it, and the last SetCompress command in the file also determines whether or not the install info section and uninstall data of the installer is compressed. If compressflag is 'auto', then files are compressed if the compressed size is smaller than the uncompressed size. If compressflag is set to 'force', then the compressed version is always used. If compressflag is 'off' then compression is not used (which can be faster).
|
||||
|
||||
\H{asetcompressor} SetCompressor
|
||||
|
||||
SetCompressor \e{zlib|bzip2}
|
||||
|
||||
This command sets the compression algorithm used to compress files/data in the installer. Options are ZLib or BZip2. ZLib uses deflate compression, which is very good. this mode uses the least amount of overhead on the runtime side, in terms of memory usage, disk footprint, and speed. BZip2 compression can be better than deflate, especially when using NSIS_COMPRESS_WHOLE. bzip2 is much slower to decompress, and uses a LOT more memory at runtime. The disk footprint using bzip2 is also approximately 1kb more than ZLib.
|
||||
|
||||
\H{asetdatablockoptimize} SetDatablockOptimize
|
||||
|
||||
SetDatablockOptimize \e{on|off}
|
||||
|
||||
This command tells the compiler whether or not to do datablock optimizations. Datablock optimizations have the compiler check to see if any data being added to the data block is already in the data block, and if so, it is simply referenced as opposed to added (can save a little bit of size).
|
||||
|
||||
\H{asetdatesave} SetDateSave
|
||||
|
||||
SetDateSave \e{on|off}
|
||||
|
||||
This command sets the file date/time saving flag which is used by the File command to determine whether or not to save the last write date and time of the file, so that it can be restored on installation. Valid flags are 'on' and 'off'. 'on' is the default.
|
13
Docs/src/config.but
Normal file
13
Docs/src/config.but
Normal file
|
@ -0,0 +1,13 @@
|
|||
\title NSIS Users Manual
|
||||
|
||||
\cfg{xhtml-leaf-level}{1}
|
||||
|
||||
\cfg{xhtml-leaf-smallest-contents}{2}
|
||||
|
||||
\cfg{xhtml-leaf-contains-contents}{true}
|
||||
|
||||
\cfg{xhtml-head-end}{<link rel="stylesheet" href="style.css" type='text/css' />}
|
||||
|
||||
\preamble NSIS is a free scriptable win32 installer/uninstaller system that doesn't suck and isn't huge.
|
||||
|
||||
\copyright Copyright (c) 2002 Nullsoft, Inc.
|
190
Docs/src/history.but
Normal file
190
Docs/src/history.but
Normal file
|
@ -0,0 +1,190 @@
|
|||
\A{history} Release History
|
||||
|
||||
\e{v2.0a8}
|
||||
|
||||
\b CTRL-C in Detail View now copies contents to clipboard
|
||||
|
||||
\e{v2.0a7}
|
||||
|
||||
\b Can now select the language from .onInit ($LANGUAGE is a variable)
|
||||
|
||||
\b Added CreateFont
|
||||
|
||||
\b Added .onMouseOverSection
|
||||
|
||||
\b Added .onInitDialog and un.onInitDialog
|
||||
|
||||
\b Added SetStaticBkColor
|
||||
|
||||
\b Disabled UseOuterUIItem
|
||||
|
||||
\b SendMessage WM_SETTEXT treats lParam as a string and not a number
|
||||
|
||||
\b CopyFiles script message no longer always prints (silent)
|
||||
|
||||
\b Custom install type text can now be changed
|
||||
|
||||
\b ChangeUI can now change IDD_VERIFY
|
||||
|
||||
\b Default license color now fits the user system
|
||||
|
||||
\b Summary reports the right number of required sections
|
||||
|
||||
\b Checkbox is only required in IDD_DIR if logging is enabled
|
||||
|
||||
\b Not using /LANG now really causes the script compiler to use the last used language
|
||||
|
||||
\b Fixed a bug with MBCS and the uninstaller text
|
||||
|
||||
\b MBCS to Unicode and Unicode to MBCS conversion bugs fixed
|
||||
|
||||
\b Fixed a bug that caused RTF not to show on Windows 9x
|
||||
|
||||
\b Added a dialog that shows up if compress whole is used and initial uncompressing lasts longer than a second
|
||||
|
||||
\b Updated to InstallOptions 1.3
|
||||
|
||||
\b MakeNSISw 1.7 included
|
||||
|
||||
\b Added modern UI by Joost Verburg (Examples\\Modern UI)
|
||||
|
||||
\b Added new full color icons by adni18
|
||||
|
||||
\b Added Dutch, Korean, Russian, Swedish and Tradional Chinese language files
|
||||
|
||||
\b Updated Spanish language file version (thanks to LsMoNKi)
|
||||
|
||||
\b Added /TRIM(LEFT|RIGHT|CENTER) for BrandingText
|
||||
|
||||
\b EXE header size down to 36.5KB
|
||||
|
||||
\b Added yi-pixel.ico and yi-pixel-uninstall.ico by Jan T. Sott
|
||||
|
||||
\b Fixed a bug with macros at the end of the file
|
||||
|
||||
\b Sub-sections can now have defined names too
|
||||
|
||||
\b Added LangDLL.dll plugin
|
||||
|
||||
\b CallInstDLL /NOUNLOAD added (works on plugin calls too)
|
||||
|
||||
\e{v2.0a6}
|
||||
|
||||
\b Fixed two bugs with the plug-in mechanism
|
||||
|
||||
\b Fixed infinite loop bug
|
||||
|
||||
\e{v2.0a5}
|
||||
|
||||
\b Added UseOuterUIItem
|
||||
|
||||
\b Enhanced ChangeUI
|
||||
|
||||
\b Enhanced SetDlgItemText
|
||||
|
||||
\b Added one-section.nsi example file
|
||||
|
||||
\b Optimized Ximon's code for plug-in DLLs (back to 37KB)
|
||||
|
||||
\b If default user language doesn't fit exactly, will try to find primary language match
|
||||
|
||||
\b Fixed some strings that got replaced (space available and required etc.)
|
||||
|
||||
\b Compiles without MS Platform SDK
|
||||
|
||||
\b Included Spanish.nlf
|
||||
|
||||
\b Included MagicLime.exe by snowchyld
|
||||
|
||||
\e{v2.0a4}
|
||||
|
||||
\b Added automatic detection, packing, unpacking and deletion of plugin dlls
|
||||
|
||||
\b Added simplified calling syntax for plugin dlls
|
||||
|
||||
\b Added PluginDir
|
||||
|
||||
\e{v2.0a3}
|
||||
|
||||
\b Added LoadLanguageFile
|
||||
|
||||
\b Added $LANGUAGE
|
||||
|
||||
\b Added /LANG option to string setters (Name, Caption, etc.)
|
||||
|
||||
\b 'LogSet on' now builds a log file if not already created
|
||||
|
||||
\e{v2.0a2}
|
||||
|
||||
\b Added NSISDIR
|
||||
|
||||
\b Added XPStyle
|
||||
|
||||
\b Added SetFont
|
||||
|
||||
\b Added ChangeUI
|
||||
|
||||
\b Added AddBrandingImage, and SetBrandingImage
|
||||
|
||||
\b Added SetCompressor (no more makensis-bz2.exe)
|
||||
|
||||
\b Added LicenseBkColor
|
||||
|
||||
\b 'SpaceTexts none' now causes no space texts to appear
|
||||
|
||||
\b Icon and UninstallIcon now support icons of any type
|
||||
|
||||
\b CheckBitmap now support bitmaps with any color table/depth
|
||||
|
||||
\b Unused resources are removed before wrinting out the installer
|
||||
|
||||
\b Documented !error and !warning
|
||||
|
||||
\b Added !echo and !verbose
|
||||
|
||||
\b Added force option for CRCCheck
|
||||
|
||||
\b Updated to Makensisw 1.6
|
||||
|
||||
\b Updated to InstallOptions 1.2
|
||||
|
||||
\b Installer can now be compressed using UPX
|
||||
|
||||
\b A hint is shown if a line is longer than the detail window
|
||||
|
||||
\b Modern style folder select dialog
|
||||
|
||||
\b License data can now be RTF
|
||||
|
||||
\b WindowIcon is now handled in the compiler
|
||||
|
||||
\b Removed debug version (it never worked anyway)
|
||||
|
||||
\b Faster compile time (WIN32_LEAN_AND_MEAN)
|
||||
|
||||
\e{v2.0a1}
|
||||
|
||||
\b Added expand node option to Section and SubSection
|
||||
|
||||
\b Added preserv file attribute option to File command
|
||||
|
||||
\b Copy-All bug fix in Makensisw
|
||||
|
||||
\b Added NSISDIR to the define list
|
||||
|
||||
\b Reorganized NSIS directory structure
|
||||
|
||||
\e{v2.0a0}
|
||||
|
||||
\b TreeView component list (care of Jeff Doozan)
|
||||
|
||||
\b No more SectionDivider, but SubSection and SubSectionEnd.
|
||||
|
||||
\b No more EnabledBitmap/DisabledBitmap, just CheckBitmap. (with tons of button states)
|
||||
|
||||
\b Bugfixes of brokenness.
|
||||
|
||||
\b Added ! for Section/SubSection to make bold.
|
||||
|
||||
\b Made config.h have hacks for easier building for me. :)
|
||||
|
52
Docs/src/intro.but
Normal file
52
Docs/src/intro.but
Normal file
|
@ -0,0 +1,52 @@
|
|||
\C{intro} Introduction to NSIS
|
||||
|
||||
NSIS is a free scriptable win32 installer/uninstaller system that doesn't suck and isn't huge.
|
||||
|
||||
\H{intro-about} About NSIS
|
||||
|
||||
NSIS tries to be a scriptable win32 installer/uninstaller system that doesn't suck and isn't huge.
|
||||
|
||||
NSIS exists largely because of the need to distribute Winamp.
|
||||
|
||||
In the beginning, Winamp was distributed as a simple .ZIP file (see Winamp 1.0).
|
||||
Eventually, Winzip was nice enough to give us a license to the Winzip self extractor (see Winamp 2.0)
|
||||
|
||||
The self extracting ZIP file became too restrictive, so we started using a custom developed installer. This installer was generated using a combination of "bin2h", batch files, and Visual C++. To add a new file into the distribution, or to have the installer do something new on install, it required writing quite a bit of code. (see Winamp 2.5)
|
||||
|
||||
Another thing we needed was a good way to distribute Winamp plug-ins. The solution: PIMP (Plug-In Mini Packager). PIMP was actually based on the custom installer (though was a lot simpler and removed a lot of code), but stored the data and strings that were unique to that installer in a block at the end of the file. It was small and simple, allowing the simple functions of detecting where Winamp was installed and extracting files. The limitations of PIMP were that it could only extract files, and it was designed for small installers (i.e. an 8mb installer would take 8mb of memory).
|
||||
|
||||
NSIS, which stands for "Nullsoft SuperPIMP Installation System" or "Nullsoft Scriptable Installation System" or whatever you want, is based on PIMP but is designed to be much more flexible. NSIS creates installers that are capable of installing, uninstalling, setting system settings, extracting files, etc. Pretty much anything. All with the minimum of overhead- NSIS installers don't bother throwing up a big blue gradient, they don't bother decompressing themselves three different times, telling the user to "please wait". They get to the point and get the job done.
|
||||
|
||||
In order to make NSIS even more powerful than it already is, we have released it under an open source license (it is actually the zlib/libpng license, which is approved by opensource.org). What does this mean? It means that if you want to add the functionality you need to NSIS, you can. It means if you want to make your own custom version of NSIS (or some product that includes NSIS), and sell it, you can. Or if you just want to distribute your software using NSIS, you sure as hell can.
|
||||
|
||||
The result of all of this is an installation system for win32 that lets you compile nice little scripts (which are text files, no wizards to slow you down) into tiny installers. Many features are supported, and the whole thing just works pretty damn well (at least, we think).
|
||||
|
||||
\H{intro-features} Main Features
|
||||
|
||||
Here's a short list of some of NSIS' features.
|
||||
|
||||
\b SuperPiMP™ technology (so advanced, so amazing, we won't even tell you what it is).
|
||||
|
||||
\b Generates self contained, win32 executable installer.
|
||||
|
||||
\b Uninstall support (installer can automagically generate an uninstaller)
|
||||
|
||||
\b Optional installer self-verification using a CRC32.
|
||||
|
||||
\b Compression choices of zlib or bzip2 based compression. The installer can compress everything together, or individually.
|
||||
|
||||
\b Approximately 20-40k overhead over compressed data size (depending on features enabled, compression algorithm, and so on - the default options are ~35k).
|
||||
|
||||
\b Ability to display a license agreement.
|
||||
|
||||
\b Ability to detect destination directory from the registry, and let the user override (or not let them)
|
||||
|
||||
\b Customizable appearance (background, icons, text, checkmarks)
|
||||
|
||||
\b Multiple install configurations (usually Minimal, Typical, Full), and custom configuration
|
||||
|
||||
\b Plug-in system (includes plug-ins for generic dialog construction and user interaction, as well as HTTP downloading)
|
||||
|
||||
\b Installers can be as large as 2GB (theoretically -- when building on Win9x the limit seems to be around 500MB, however building on NT then installing on Win9x works with larger sizes)
|
||||
|
||||
\b Optional Silent mode for automated installations
|
14
Docs/src/license.but
Normal file
14
Docs/src/license.but
Normal file
|
@ -0,0 +1,14 @@
|
|||
\A{licence} NSIS Licence
|
||||
|
||||
Copyright (C) 1999-2002 Nullsoft, Inc.
|
||||
|
||||
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
|
13
Docs/src/makefile
Normal file
13
Docs/src/makefile
Normal file
|
@ -0,0 +1,13 @@
|
|||
OBJS = config.but intro.but usage.but script.but attributes.but compilerflags.but history.but license.but
|
||||
|
||||
CC = bin\halibut.exe
|
||||
|
||||
all:
|
||||
$(CC) $(OBJS)
|
||||
@del *.hlp
|
||||
@del *.cnt
|
||||
@copy Contents.html index.html
|
||||
@copy index.html IndexPage.html
|
||||
@del output.txt
|
||||
@copy *.html ..\\
|
||||
@del -f *.html
|
35
Docs/src/script.but
Normal file
35
Docs/src/script.but
Normal file
|
@ -0,0 +1,35 @@
|
|||
\C{script} Script File Format
|
||||
|
||||
A NSIS Script File (.nsi) is just a text file with a series of commands.
|
||||
|
||||
\b Lines beginning with ; or # are comments.
|
||||
|
||||
\b Non-comment lines are in the form of 'command [parameters]'
|
||||
|
||||
\b Anything after a ; or # that is not in a parameter (i.e. in quotes or part of another string) is treated as a comment. (i.e. "File myfile ; this is the file" would work)
|
||||
|
||||
\b For parameters that are treated as numbers, use decimal (the number) or hexadecimal (with 0x prepended to it, i.e. 0x12345AB), or octal (numbers beginning with a 0 and no x).
|
||||
|
||||
\b To represent strings that have spaces, use quotes.
|
||||
|
||||
\b quotes only have the property of containing a parameter if they begin the parameter.
|
||||
|
||||
\b quotes can be either single quotes, double quotes, or the backward single quote.
|
||||
|
||||
\b Examples:
|
||||
|
||||
\c MessageBox MB_OK "I'll be happy" ; this one puts a ' inside a string
|
||||
\c MessageBox MB_OK 'And he said to me "Hi there!"' ; this one puts a " inside a string
|
||||
\c MessageBox MB_OK `And he said to me "I'll be fucked!"` ; this one puts both ' and "s inside a string:
|
||||
|
||||
\b To extend a command over multiple lines, use a backslash (\\) at the end of the line, and the next line will effectively be concatenated the end of it. For example:
|
||||
|
||||
\c CreateShortCut "$SMPROGRAMS\NSIS\ZIP2EXE project workspace.lnk" \
|
||||
\c "$INSTDIR\source\zip2exe\zip2exe.dsw"
|
||||
\c
|
||||
\c MessageBox MB_YESNO|MB_ICONQUESTION \
|
||||
\c "Remove all files in your NSIS directory? (If you have anything \
|
||||
\c you created that you want to keep, click No)" \
|
||||
\c IDNO NoRemoveLabel
|
||||
|
||||
\b If a file named "nsisconf.nsi" in the same directory as makensis.exe exists, it will be included by default before any scripts (unless the /NOCONFIG command line parameter is used.
|
32
Docs/src/usage.but
Normal file
32
Docs/src/usage.but
Normal file
|
@ -0,0 +1,32 @@
|
|||
\C{usage} MakeNSIS Usage
|
||||
|
||||
NSIS installers are generated by using the 'MakeNSIS' program to compile a NSIS script (.NSI) into an installer executable. The syntax of the makensis command is:
|
||||
|
||||
\c Makensis [/Vx] [/Olog] [/LICENSE] [/PAUSE] [/NOCONFIG] [/CMDHELP [command]] [/HDRINFO] [/CD]
|
||||
\c [/Ddefine[=value] ...] ["/XCommand parameter" ...] [Script.nsi | - [...]]
|
||||
|
||||
\b /LICENSE displays a keen license page.
|
||||
|
||||
\b The /V switch followed by a number between 0 and 4 will set the verbosity of output accordingly. 0=no output, 1=errors only, 2=warnings and errors, 3=info, warnings, and errors, 4=all output.
|
||||
|
||||
\b The /O switch followed by a filename tells the compiler to print its log to that file (instead of the screen)
|
||||
|
||||
\b /PAUSE makes Makensis pause before quitting, which is useful when executing directly from Windows (the auto-installed shell extensions use it).
|
||||
|
||||
\b /NOCONFIG disables inclusion of [path to makensis.exe]\\nsisconf.nsi . Without this parameter, installer defaults are set from nsisconf.nsi. See NSIS Configuration File.
|
||||
|
||||
\b /CMDHELP prints basic usage information for command (if specified), or all commands (if command is not specified).
|
||||
|
||||
\b /HDRINFO prints out information on what options Makensis was compiled with.
|
||||
|
||||
\b /CD tells the compiler to switch to the directory of the script it is currently compiling.
|
||||
|
||||
\b Using the /D switch one or more times will add to symbols to the globally defined list (See !define).
|
||||
|
||||
\b Using the /X switch one or more times will execute the code you specify following it. Example: "/XAutoCloseWindow false"
|
||||
|
||||
\b Specifying a dash (-) for the script name will tell Makensis to use the standard input as a source.
|
||||
|
||||
\b If multiple scripts are specified, they are treated as one concatenated script.
|
||||
|
||||
Note that the NSIS development kit installer may have set up your computer so that you can compile a .nsi file by simply right-clicking on it in explorer, and selecting 'compile'.
|
Loading…
Add table
Add a link
Reference in a new issue